移动端页面怎么在页面左右滑动的时候,禁止页面上下滑动

移动端轮播图,想实现左右滑动的时候,禁止页面上下滑动(针对斜着滑的情况)。
但是目前的问题是现在 touchmove事件不能使用event.preventDefault来禁止默认事件,touch-action的兼容性不合适,IOS手机完全不支持。所以想请问下各位大佬,还有什么办法可以禁止默认的上下滑动事件吗?谢谢

阅读 12.1k
1 个回答

enmmmm~可以添加一个状态来进行选择性控制event.preventDefault

    document.addEventListener('touchmove',(event)=>{
            if (event.comesFromScrollable){
                event.preventDefault();
            }
        },{passive: false});

然后在onTouchMove事件中手动设置comesFromScrollable属性
达到只有在滑动swiper组件时才进行event.preventDefault()

    function onTouchMove(e){
        e.comesFromScrollable = true;
        //其他业务逻辑
    }

其他任何滑动事件只要不设置e.comesFromScrollable = true;就不会阻止默认事件

这是我写的一个案例?:https://1uokun.github.io/h5/d...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题