移动端上下滑屏问题

发布于 2022-09-04 19:44:07 字数 1590 浏览 25 评论 0

设计图上有这样的展示 第一屏100%高,剩下的高度很长很长,现有这样的需求,向上滑动第一屏的时候直接跳到后面的内容,后面的内容正常滚动即可,不需要滑屏的效果,找了好多滑屏的插件(swipe,fullpage等)都不满足这样的需求,后来百度找到这样的代码

var xx,yy,XX,YY,swipeX,swipeY ;
var divelem = document.getElementById("swipearea")
 divelem.addEventListener('touchstart',function(event){
     event.stopPropagation();//阻止冒泡
     event.preventDefault();//阻止浏览器默认事件
     xx = event.targetTouches[0].screenX ;
     yy = event.targetTouches[0].screenY ;
     swipeX = true;
     swipeY = true ;
 })
 divelem.addEventListener('touchmove',function(event){
      XX = event.targetTouches[0].screenX ;
      YY = event.targetTouches[0].screenY ;
      if(swipeX && Math.abs(XX-xx)-Math.abs(YY-yy)>0)  //左右滑动
      {
          event.stopPropagation();//阻止冒泡
          event.preventDefault();//阻止浏览器默认事件
          swipeY = false ;
          //左右滑动
      }
      else if(swipeY && Math.abs(XX-xx)-Math.abs(YY-yy)<0){  //上下滑动
          swipeX = false ;
          //上下滑动,使用浏览器默认的上下滑动
          if((YY-yy) < -10){
              $('html,body').animate({
                    "scroll-top": $(window).innerHeight()
                }, 500);
              swipeY = false ;
          }
          if((YY-yy) > 10){
              $('html,body').animate({
                    "scroll-top": 0
                }, 500);
              swipeY = false ;
          }
          //
      }
  })
  divelem.addEventListener('touchend',function(event){
     event.stopPropagation();//阻止冒泡
     event.preventDefault();//阻止浏览器默认事件

 })

第一屏滑屏的效果是实现了,但是第一屏上的a标签及各种点击事件也都被屏蔽了,请问高手该如何解决

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦晓ヶ微光ヅ倾城 2022-09-11 19:44:08

过了第一层的容器(装下边内容的容器和第一层容器同级)pointer-events: none;试一下呢

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文