码迷,mamicode.com
首页 > 移动开发 > 详细

JS-移动端判断上拉和下滑

时间:2018-07-19 22:05:30      阅读:789      评论:0      收藏:0      [点我收藏+]

标签:slide   图片   bre   change   rtx   code   bsp   ase   dev   

一、手指触屏,利用touchstart和touchend计算前后滑动距离,判断是上拉还是下滑。

二、js中距离:pageY、clientY、offsetY的区别:

       offsetY:相对于父节点的偏移距离。

       clientY:相对于浏览器,滚轮距离不算在内。

       pageY:相对于浏览器,滚轮滚动的距离算在内;本例中,用pageY,触屏时记录位置-startY,结束时记录-endY,两个相减以正负判断是上移还是下滑。

 

     技术分享图片

三、touchstart有touches属性,touchend有changedTouches属性,两个属性中分别有pageY、pageX信息。

//滑动处理
        var startX, startY;
        document.addEventListener(‘touchstart‘,function (ev) {
            startX = ev.touches[0].pageX;
            startY = ev.touches[0].pageY;
        }, false);
 
        document.addEventListener(‘touchend‘,function (ev) {
            var endX, endY;
            endX = ev.changedTouches[0].pageX;
            endY = ev.changedTouches[0].pageY;
            var direction = GetSlideDirection(startX, startY, endX, endY);
            switch(direction) {
                case 0:
                        alert("无操作");
                    break;
                case 1:
                    // 向上
                    alert("up");
                    break;
                case 2:
                    // 向下
                    alert("down");
                    break;
 
                default:
            }
        }, false);
function GetSlideDirection(startX, startY, endX, endY) {
            var dy = startY - endY;
            //var dx = endX - startX;
            var result = 0;
            if(dy>0) {//向上滑动
                result=1;
            }else if(dy<0){//向下滑动
                result=2;
            }
            else
            {
                result=0;
            }
            return result;
        }

 

JS-移动端判断上拉和下滑

标签:slide   图片   bre   change   rtx   code   bsp   ase   dev   

原文地址:https://www.cnblogs.com/gopark/p/9338587.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!