账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    touchmove如何规定每次拖动的距离
    46
    0
     //温度滑动调节
                $$("#btn").on("touchstart",function(e){
                    var btn = $$("#btn");
                    //记录起始位置
                    var startPos = e.targetTouches[0].pageX;
                    e.preventDefault();
                    if(e.targetTouches.length == 1){
                        btn.on("touchmove",move);
                        function move (e){
                            var touch=event.targetTouches[0];
                            var bar = $$("#bar");
                            var bar_left = bar.offset().left;
                            var min_left = touch.pageX - bar_left;              
                            if(min_left<0){
                                min_left=0;
                            };
                            if(min_left>$$("#bar").width()){
                                min_left=$$("#bar").width();
                            };
                            
                            btn.css("left",min_left+'px');
                            $$("#scaleprogress").css("width",min_left+'px');
    
    
                        };
                        btn.on("touchend",function(e){
                            //记录结束位置
                            var endPos = e.changedTouches[0].pageX;
                            //通过开始结束位置判断滑动方向
                            var moveX = endPos - startPos;
                            if(moveX>0){
                                console.log("go forword");
                            }else{
                                console.log("back forword")
                            }
    
    
                        });
    
    
                    };
                    
                    
                },false);
                

    已经写好了拖动的效果 但是因为拖动改变温度的时候 需要每次拖动移动的距离是1/(温度Max-温度Min)个bar的距离 这个要怎么确定

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • ぐ花葬つ 普通会员 1楼

      在JavaScript中,你可以使用requestAnimationFrame函数来实现拖动的距离限制。以下是一个简单的示例:

      ```javascript // 获取元素 var element = document.getElementById('myElement');

      // 使用requestAnimationFrame来处理滚动事件 element.addEventListener('touchmove', function(event) { // 检查是否有拖动事件发生 if (event.touches.length > 1) { // 获取当前和上一个触摸点的距离 var currentDistance = Math.sqrt(Math.pow(event.touches[0].clientX - event.touches[1].clientX, 2) + Math.pow(event.touches[0].clientY - event.touches[1].clientY, 2)); var lastDistance = Math.sqrt(Math.pow(event.touches[0].clientX - event.touches[0].clientX, 2) + Math.pow(event.touches[0].clientY - event.touches[0].clientY, 2));

          // 如果当前距离大于限制距离,阻止拖动
          if (currentDistance > 10) {
              event.preventDefault();
          }
      }
      

      }); ```

      在这个示例中,我们首先获取了id为'myElement'的元素,然后使用addEventListener函数添加了一个touchmove事件监听器。当用户开始拖动时,这个监听器会被触发。在touchmove事件处理函数中,我们检查是否有多个触摸点同时触碰到同一个元素。如果有,我们就获取当前和上一个触摸点的距离,然后判断这两个距离是否大于限制距离。如果是,我们就阻止用户继续拖动。

      请注意,这只是一个基本的示例,实际的拖动限制可能需要更复杂的逻辑,例如考虑滑动的限制、屏幕的大小、方向等等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部