使用鼠标快速移动时,Mousemove会变慢

时间:2011-10-08 17:44:25

标签: jquery performance mousemove mousedown mouseup

我试图让jquery盒子拖动,但问题是当我拖得很快时,“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 个答案:

答案 0 :(得分:1)

由于您使用了太多系统资源,因此速度正在放缓。因此,您需要找到减少系统使用的方法。

通过将鼠标移动到文档,它运行得更快一些。当你快速移动鼠标时它仍然有点滞后,但这是一个改进。这是代码:

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