Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript如何创建流体拖动和滚动_Javascript_Jquery_Mouseevent - Fatal编程技术网

javascript如何创建流体拖动和滚动

javascript如何创建流体拖动和滚动,javascript,jquery,mouseevent,Javascript,Jquery,Mouseevent,我想创建一个拖动和滚动效果: -> mouse down -> drag and mouse move -> the window will scroll according to the amount of mouse move -> mouse up -> scroll stops 现在的问题是,当我拖动和移动时,窗口DOM元素会抖动 我添加了一个偏移检查,它减轻了震动问题,但是没有解决 有人能帮我吗 以下是主要代码,完整的JSFIDLE位于: contain

我想创建一个拖动和滚动效果:

-> mouse down
-> drag and mouse move
-> the window will scroll according to the amount of mouse move
-> mouse up
-> scroll stops
现在的问题是,当我拖动和移动时,窗口DOM元素会抖动

我添加了一个偏移检查,它减轻了震动问题,但是没有解决

有人能帮我吗

以下是主要代码,完整的JSFIDLE位于:

container.mousedown(函数(e){
mouseX=e.pageX;
mouseY=e.pageY;
console.log(“CON:+conX+”,“+conY”);
log(“向下:“+mouseX+”,“+mouseY”);
container.mousemove(函数(e){
//log(“内部向下:“+mouseX+”,“+mouseY”);
offsetX=e.pageX-鼠标;
offsetY=e.pageY-mouseY;
//抵销检查
如果(offsetX>10 | | offsetX<-10 | | offsetY>10 | | offsetY<-10){
conX-=抵销x;
conY-=offsetY;
scrollTo(conX,conY);//scrollTo
mouseX=e.pageX;
mouseY=e.pageY;
}
});
});

这里有两个插件,它们可以实现您想要的功能


可能是因为添加/删除了滚动条而导致震动吗?@MacAttack容器足够大,滚动条实际上一直存在。感谢插件。但实际上我想找出代码中的错误。午饭后我会看一看。我检查了一个旧项目,在那里我记得有同样的问题。不幸的是,我通过使用jQueryUI中的拖动功能解决了这个问题。很抱歉
container.mousedown(function(e) {

    mouseX = e.pageX;
    mouseY = e.pageY;

    console.log("CON: " + conX + "," + conY);
    console.log("DOWN: " + mouseX + "," + mouseY);

    container.mousemove(function(e) {
        //console.log("INNER-DOWN: " + mouseX + "," + mouseY);

        offsetX = e.pageX - mouseX;
        offsetY = e.pageY - mouseY;

        // offset check
        if (offsetX > 10 || offsetX < -10 || offsetY > 10 || offsetY < -10) {
            conX -= offsetX;
            conY -= offsetY;

            window.scrollTo(conX, conY); // scrollTo

            mouseX = e.pageX;
            mouseY = e.pageY;
        }
    });
});