使用jq实现手机上的touchmove效果

Touch事件简介
pc上的web页面鼠 标会产生onmousedown、onmouseup、onmouseout、onmouseover、onmousemove的事件,但是在移动终端如 iphone、ipod Touch、ipad上的web页面触屏时会产生ontouchstart、ontouchmove、ontouchend、ontouchcancel 事件,分别对应了触屏开始、拖拽及完成触屏事件和取消。
当按下手指时,触发ontouchstart;
当移动手指时,触发ontouchmove;
当移走手指时,触发ontouchend。
touchmove判断滑动方向代码如下:

$('body').bind('touchstart',function(e){
            startX = e.originalEvent.changedTouches[0].pageX,
            startY = e.originalEvent.changedTouches[0].pageY;
        });
        $('body').bind('touchmove',function(e){
            //获取滑动屏幕时的X,Y
            endX = e.originalEvent.changedTouches[0].pageX,
            endY = e.originalEvent.changedTouches[0].pageY;
            //获取滑动距离
            distanceX = endX-startX;
            distanceY = endY-startY;
            //判断滑动方向
            if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX>0){
                console.log('往右滑动');
            }else if(Math.abs(distanceX)>Math.abs(distanceY) && distanceX<0){
                console.log('往左滑动');
            }else if(Math.abs(distanceX)<Math.abs(distanceY) && distanceY<0){
                console.log('往上滑动');
            }else if(Math.abs(distanceX)<Math.abs(distanceY) && distanceY>0){
                console.log('往下滑动');
            }else{
                console.log('点击未滑动');
            }

        });
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用touch事件来实现手机端滑块滑动效果。以下是一个简单的示例代码: HTML: ```html <div class="slider"> <div class="slider-bar"></div> <div class="slider-thumb"></div> </div> ``` CSS: ```css .slider { position: relative; width: 200px; height: 10px; background-color: #ddd; } .slider-bar { position: absolute; top: 50%; left: 0; width: 100%; height: 2px; background-color: #333; transform: translateY(-50%); } .slider-thumb { position: absolute; top: 0; left: 0; width: 20px; height: 20px; background-color: #333; border-radius: 50%; transform: translate(-50%, -50%); cursor: pointer; } ``` JavaScript: ```javascript var slider = document.querySelector('.slider'); var thumb = slider.querySelector('.slider-thumb'); var startX, thumbLeft; thumb.addEventListener('touchstart', function(event) { startX = event.touches[0].clientX; thumbLeft = parseInt(window.getComputedStyle(thumb).left); }); thumb.addEventListener('touchmove', function(event) { event.preventDefault(); var moveX = event.touches[0].clientX - startX; var newLeft = thumbLeft + moveX; if (newLeft < 0) { newLeft = 0; } else if (newLeft > slider.offsetWidth - thumb.offsetWidth) { newLeft = slider.offsetWidth - thumb.offsetWidth; } thumb.style.left = newLeft + 'px'; }); thumb.addEventListener('touchend', function(event) { // do something when thumb is released }); ``` 这个示例代码会创建一个横向的滑块,滑块的宽度是200px,高度是10px。滑块的背景颜色是灰色,滑块条是黑色的。滑块的滑块是一个小圆球,颜色也是黑色的。当滑块被拖动时,滑块的位置会跟着变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值