niuzai13

android浏览器touch事件

项目有个交互需要实现手指滑动选择评论的星级,pc端当然是mousedown,mousemove,mouseup监听实现。

但在android设备上mousemove是不好监听的,同类的方法是touchstart,touchmove,touchend。我需要获取手指滑动时的坐标位置,直接使用event.clientX是不起作用的,要使用event.changedTouches[0].clientX才好。

具体实例代码片段如下:

      function touchMove(e){
            e.preventDefault();
            w = e.changedTouches[0].clientX - l;
            if(w%unit != 0){
                curLevel = Math.floor(w/unit) + 1;
            }
            if(curLevel>5){curLevel = 5;}
            if(curLevel<1){curLevel = 1;}
            setStar(curLevel);
        }
        function touchEnd(e){
            e.preventDefault();
            $(document)[0].removeEventListener("touchmove",touchMove,false);
        }
        jstar[0].addEventListener("touchstart",function(e){
                e.preventDefault();
                $(document)[0].addEventListener("touchmove",touchMove,false);
                $(document)[0].addEventListener("touchend",touchEnd,false);
        },false);

  ##20130808扩充

*兼容pc鼠标事件、移动端触控事件

var isTouchPad = (/hp-tablet/gi).test(navigator.appVersion),
hasTouch = \'ontouchstart\' in window && !isTouchPad,
START_EV = hasTouch ? \'touchstart\' : \'mousedown\',
MOVE_EV = hasTouch ? \'touchmove\' : \'mousemove\',
END_EV = hasTouch ? \'touchend\' : \'mouseup\';

分类:

技术点:

相关文章:

  • 2021-12-06
  • 2021-10-27
  • 2021-12-06
  • 2021-12-06
  • 2021-12-06
  • 2021-12-06
  • 2022-02-17
  • 2022-01-25
猜你喜欢
  • 2021-11-19
  • 2021-12-06
  • 2021-07-18
  • 2022-12-23
  • 2021-12-30
  • 2021-12-06
相关资源
相似解决方案