我正在使用jquery在网站上制作一些可拖动的div。我的代码与此类似:
$("#thediv").bind('mousedown',function(){
$(document).bind('mousemove',function(ms){
//drag
})
});
问题是如果鼠标对于div来说太快,鼠标就会超出div。这将在屏幕上选择随机内容(将其突出显示为蓝色)。它不会产生平滑的拖动效果。有没有一个很好的方法来解决这个问题? jQuery的ui drag插件没有这个问题。我不想使用它,因为它是一个大文件。
由于
答案 0 :(得分:4)
要防止在页面中选择元素,只需从函数中返回false(onmousedown,onmousemove)。此外,对于此功能,您不需要jquery,只需使用此模式:
var mouseMove = function () { // move div return false; } var mouseUp = function () { document.onmousemove = null; document.onmouseup = null; } var mouseDown = function () { document.onmousemove = mouseMove; document.onmouseup = mouseUp; return false; } div.onmousedown = mouseDown;
不要忘记从事件函数mouseMove返回false以防止默认事件;
答案 1 :(得分:1)
还要考虑CSS:
#thediv {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;
}