移动端滑屏滚动事件的问题(横向滑动阻止垂直页面滚动)

在项目中遇到一个问题,横向滑动的时候想阻止垂直放向页面滚动,一开始用$(document).css("overflow-y","hidden")并没有效果,后来才发现我们在判断为横向滑动时用event.preventDefault阻止默认事件即可,

   var taskswiper = {
      startX: 0,
      startY: 0
   };
   $(id).on('touchstart', 'li', function(event){
      if (event.originalEvent.targetTouches.length == 1) {
         taskswiper.startX = event.originalEvent.targetTouches[0].pageX;
         taskswiper.startY = event.originalEvent.targetTouches[0].pageY;
      }
   });

   $(id).on('touchmove', 'li', function(event){
      taskswiper.leftX = event.originalEvent.targetTouches[0].pageX - taskswiper.startX;
      taskswiper.leftY = event.originalEvent.targetTouches[0].pageY - taskswiper.startY;

      //横向移动大于纵向移动
      if ((Math.abs(taskswiper.leftX) > Math.abs(taskswiper.leftY))) {
         //阻止纵向滚动事件
         event.preventDefault();

     //执行想做的事情
     
      }
   });

 

posted @ 2017-01-13 18:04  小草露露  阅读(3650)  评论(0编辑  收藏  举报