2014-09-04 105 views
0

我想移動div使用jquery .mousemove()但它的工作正常只有第一次鼠標輸入div#container。我的目標是將光標移動到div#container內的任何地方div#hello。請檢查我的代碼sample,並請幫助,如果我失去了一些東西。mousemove無法正常工作

+1

的問題是,'animate'是昂貴的,當你移動你的鼠標監聽器調用它每秒幾十倍。如果將鼠標從頂部或底部移動到元素的中間,則會看到如果工作正常。 – apsillers 2014-09-04 17:12:14

+0

感謝您的回答,但有什麼其他方式可以做到嗎? – 2014-09-04 17:14:24

+0

嘗試讓動畫花費更少的時間。類似於$(this).animate({left:e.pageX},10);'在你的小提琴中。 – flowstoneknight 2014-09-04 17:48:30

回答

0
  1. 你應該添加一個div容器到HTML
  2. 你應該綁定事件「容器」而不是「你好」的div
  3. 你可以操縱「你好」的div的CSS功能。

你發現代碼here

$("#container").mousemove(function (e) { 
$("#result").text(e.pageX + ',' + e.pageY); 
$("#hello").css('left', e.pageX); 
$("#hello").css('top', e.pageY); 
}); 
0

試試這個:

HTML

<div id="container"> 
    <div id="hello">Hello</div> 
</div> 

JS

$("#container").mousemove(function (e) { 
if((e.pageX<365)&&(e.pageY<190)) 
{ 
    $("#hello").animate({left:e.pageX},0); 
    $("#hello").animate({top:e.pageY},0); 
} 
}); 

CSS

#hello { 
    position:absolute; 
} 
#container { 
    width:400px; 
    height:200px; 
    border:1px solid blue; 
} 

DEMO