2011-10-08 150 views
2

即時嘗試讓jquery框拖動,但問題是,當我拖動速度非常快時,「鼠標移動」移動速度比我的鼠標慢,當鼠標移出拖動#框鼠標移動不會動,我怎麼能解決這個問題?:當你用鼠標快速移動時,鼠標移動速度會變慢

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

它放慢,因爲你使用了過多的系統resouces。所以你需要找到減少系統使用的方法。

通過將鼠標移動到文檔,它運行得更快一些。當你快速移動鼠標時它仍然有點滯後,但這是一個進步。這裏是代碼:

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

嘗試在JsFiddle上測試此代碼。 – Blender

+0

嘿,它不工作:http://jsfiddle.net/TqrdS/ –

+0

這是我的觀點:P'.style.left'不會在jQuery對象上工作。 – Blender

相關問題