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;
}
});
});