Jquery 摇摇晃晃的上下滚动

Jquery 摇摇晃晃的上下滚动,jquery,scroll,scrolltop,mousemove,Jquery,Scroll,Scrolltop,Mousemove,我试图让用户能够使用鼠标垂直和水平移动页面。为此,我使用jQuery的scrollTop()和scrollLeft()函数在用户按下并移动鼠标时滚动文档。我的代码工作正常,但页面在移动时会剧烈抖动。 我已经能够用一段较小的代码生成相同的问题。 这是一个。 知道是什么导致了这种不稳定的行为吗?你在“拍打”。如果在第134行放置断点并观察相关值,则可以看到它发生: $(文档).scrollTop() 下斜顶 数学地板(e.pageY-downY) 拖动文本一次以开始循环,然后在通过断点时观察它们

我试图让用户能够使用鼠标垂直和水平移动页面。为此,我使用jQuery的scrollTop()和scrollLeft()函数在用户按下并移动鼠标时滚动文档。我的代码工作正常,但页面在移动时会剧烈抖动。

我已经能够用一段较小的代码生成相同的问题。
这是一个。


知道是什么导致了这种不稳定的行为吗?

你在“拍打”。如果在第134行放置断点并观察相关值,则可以看到它发生:

  • $(文档).scrollTop()
  • 下斜顶
  • 数学地板(e.pageY-downY)

拖动文本一次以开始循环,然后在通过断点时观察它们循环。您对scrollTop和scrollLeft的更改将触发mousemove事件。我不确定它在所有浏览器中都能做到这一点,但在Chrome中显然能做到

你在“拍打”。如果在第134行放置断点并观察相关值,则可以看到它发生:

  • $(文档).scrollTop()
  • 下斜顶
  • 数学地板(e.pageY-downY)

拖动文本一次以开始循环,然后在通过断点时观察它们循环。您对scrollTop和scrollLeft的更改将触发mousemove事件。我不确定它在所有浏览器中都能做到这一点,但在Chrome中显然能做到

在jQuery中尝试类似的方法。这是一张工作票


这是根据jQuery插件改编的。我强烈建议你使用它。它为您完成所有这些工作。这是它的一个演示。

为您的jQuery尝试类似的方法。这是一张工作票


这是根据jQuery插件改编的。我强烈建议你使用它。它为您完成所有这些工作。这是它的一个演示。

是的,应该可以!谢谢,你的代码工作得很好。我只是尝试使用clientX和clientY而不是pageX和pageY,没有改变代码中的任何其他内容,而且它也可以正常工作。@Mohsin很高兴知道。谢谢。是的,应该可以了!谢谢,你的代码工作得很好。我只是尝试使用clientX和clientY而不是pageX和pageY,没有改变代码中的任何其他内容,而且它也可以正常工作。@Mohsin很高兴知道。谢谢
var down=false;
var downX=0;
var downY=0;

$(document).ready(function(){
    $(document).mousedown(function(e){
        e.preventDefault();
        down=true;
        downX=e.clientX;
        downY=e.clientY;
        return false;
    }).mouseup(function(e){
        e.preventDefault();
        down=false;
        return false;
    }).mousemove(function(e){
        e.preventDefault();
        if(down){
            $(document).scrollTop($(document).scrollTop()-e.clientY+downY)
                .scrollLeft($(document).scrollLeft()-e.clientX+downX);
            downY = e.clientY; //Reset the cursor's last Y position
            downX = e.clientX; //Reset the cursor's last X position
        }
        return false;
    });
});