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

Posted SSXfont

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-移动端判断上拉和下滑相关的知识,希望对你有一定的参考价值。

一、手指触屏,利用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-移动端判断上拉和下滑的主要内容,如果未能解决你的问题,请参考以下文章

上拉和下拉的解释

关于移动端滑动手势

关于STM32 GPIO的上拉输入和下拉输入

移动端监听上滑下滑(判断元素是否滚动到底部)

GridView和各种相关控件的上拉和下拉

如何将GPIO口配置为上拉,下拉输入