2013-04-11 69 views
0

當我有當我點擊這樣一個div內改變位置的圖像:如何更新X和Y座標徘徊的對象

mainDiv.click(function (e) { 

    var mouseX = e.clientX, 
     mouseY = e.clientY; 

     test2 = Math.atan(mouseY/mouseX); 
     test3 = ((test2 * 180)/3.14); 

     $("#hgun").rotate(test3); 
}); 

但是當我點擊DIV裏面只有改變位置。當我在div裏面盤旋時,我怎麼能改變它的位置?

+0

看看所有[JQuery的鼠標事件(http://api.jquery.com/category/events/mouse-events/)。 – Vucko 2013-04-11 07:03:55

回答

2

.hover()方法綁定mouseenter和mouseleave事件的處理程序。您可以使用它在鼠標位於元素內時簡單地將行爲應用於元素。

它被稱爲像這樣:

$(selector).hover(handlerIn, handlerOut) 

這對於短:

$(selector).mouseenter(handlerIn).mouseleave(handlerOut); 

在你的情況,這將是:

mainDiv.hover(function (e) { 
     var mouseX = e.clientX, 
      mouseY = e.clientY; 

     test2 = Math.atan(mouseY/mouseX); 
     test3 = ((test2 * 180)/3.14); 
     $("#hgun").rotate(test3); 
    }, 
function (e) { 
    //On mouseleave 
}); 

進一步閱讀jQuery hover documentationjQuery mouse events


更新,根據筆者的評論:

我不知道你想實現什麼,但如果你想你的計算和每當鼠標在容器內移動時要執行的相關操作,可以使用mousemove事件。

我已經做了基於代碼的簡單小提琴,檢查出來http://jsfiddle.net/sQ4Z4/1/

我使用的第一jQuery Rotate Plugin我發現,這可能不是你所使用的,但它應該足夠讓你走向正確的方向。

基本上你的代碼應該是這個樣子:

mainDiv.mousemove(function (e) { 
    var mouseX = e.clientX, 
     mouseY = e.clientY; 

    test2 = Math.atan(mouseY/mouseX); 
    test3 = ((test2 * 180)/3.14); 
    $("#hgun").rotate(test3); 
}); 
+0

我現在的問題是,只要我用鼠標進入框,它就會在那裏旋轉,但是當我在框內時它不會旋轉。 x和y需要隨時更新? – user1859736 2013-04-11 07:59:11

+0

再次檢查我的答案,我添加了演示和一些其他信息和參考。 – Peter 2013-04-11 08:22:07

+1

非常好。 Thx男人! – user1859736 2013-04-11 08:25:25

0

改變這一行:

mainDiv.click(function (e) {

mainDiv.hover(function (e) {

hover接受兩個功能:第一種是在mouseenter執行時,第二上mouseleave