1

我正在使用 jquery 在网站上制作一些可拖动的 div。我的代码与此类似:

$("#thediv").bind('mousedown',function(){
    $(document).bind('mousemove',function(ms){
      //drag
    })
});

问题是,如果鼠标对于 div 来说太快,鼠标就会跑到 div 之外。这会选择屏幕上的随机内容(突出显示为蓝色)。它不会产生平滑的拖动效果。有没有一个很好的方法来解决这个问题?jQuery 的 ui 拖动插件没有这个问题。我不想使用它,因为它是一个大文件。

谢谢

4

2 回答 2

4

为了防止选择页面中的元素,只需从您的函数(onmousedown、onmousemove)中返回 false。同样对于此功能,您不需要 jquery,只需使用此模式:

var mouseMove = 函数 () {
    // 移动 div
    返回假;
}
var mouseUp = 函数 () {
    文档.onmousemove = null;
    文档.onmouseup = null;          
}
var mouseDown = 函数 () {
    document.onmousemove = 鼠标移动;
    document.onmouseup = mouseUp;
    返回假;
}
div.onmousedown = mouseDown;

不要忘记从事件函数 mouseMove 返回 false 以防止默认事件;

于 2009-09-24T05:42:16.867 回答
1

还要考虑 CSS:

#thediv {
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}
于 2011-11-12T07:08:41.893 回答