1

私はjqueryを使用して、いくつかのdivをWebサイトでドラッグ可能にします。私のコードはこれに似ています:

$("#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 を移動
    false を返します。
}
var mouseUp = 関数 () {
    document.onmousemove = null;
    document.onmouseup = null;          
}
var mouseDown = 関数 () {
    document.onmousemove = mouseMove;
    document.onmouseup = mouseUp;
    false を返します。
}
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 に答える