Перемещение мыши замедляется при быстром движении мышью - PullRequest
2 голосов
/ 08 октября 2011

я пытаюсь заставить jquery box перетаскивать, но проблема в том, что когда я перетаскиваю очень быстро, "mousemove" движется медленнее, чем моя мышь, и когда мышь выходит из перетаскиваемой рамки # box, mousemove не будет двигаться, как я могуисправить это?:

function position(div,x,y) {

    x = x-100;
    y = y-100;

    $(div).css({'left':x, 'top':y});

}


$(document).ready(function() {

    var check = false;

    $("#box").mousedown(function() {

        check = true;

        $("#box").mousemove(function (e) {

            if(check != false) {

                position("#box", e.pageX, e.pageY);

            }

        });

    }).mouseup(function() {

        check = false;

    });

});

1 Ответ

1 голос
/ 08 октября 2011

Это замедляется, потому что вы используете слишком много системных ресурсов. Поэтому вам нужно найти способы уменьшить использование системы.

Делая перемещение мыши к документу, она работает немного быстрее. Это все еще немного отстает, когда вы перемещаете мышь очень быстро, но это улучшение. Вот код:

$(document).ready(function() {
    var check = false,
        box = $("#box")[0];

    $(box).mousedown(function() {
        check = true;
    }).mouseup(function() {
        check = false;
    });

    $(document).mousemove(function(e) {
        if(check) {
            position(box, e.pageX, e.pageY);
        }   
    });
});
...