2013-10-24 154 views
0

我有以下代碼:移動圖像,Y座標

var currX = 0; 
var currY = 0; 
var player = $('#player'); 
//Checks to see which key is pressed down 
     $(window).on('mousedown', function(e) { 
      currX = e.offsetX; 
      currY = e.offsetY; 
      console.log(e.offsetX + ', ' + e.offsetY); 
     }); 


     player.css({ 
      left: function(index,value) { return (value + currX + 'px'); }, 
      top: function(index,value) { return (value + currY + 'px'); } 
     }); 

圖像不動的。我console.log兩個偏移量,他們打印輸出正確。

謝謝!

回答

2

您正在將topleft的值設置爲一個函數。當代碼執行時,這將被評估一次。如果你想要player移動,你想在你的mousedown偵聽器中執行該代碼。

+0

在我的CSS的#player具有絕對 –

+0

好的位置。更新我的答案,因爲我注意到更嚴重的問題。 –

+0

這是它謝謝你! –

1

你應該在MouseDown事件中應用此CSS:

$(window).on('mousedown', function (e) { 
    currX = e.offsetX; 
    currY = e.offsetY; 
    console.log(e.offsetX + ', ' + e.offsetY); 
    player.css({ 
     left: currX + 'px', 
     top: currY + 'px' 
    }); 
}); 

FIDDLE

+0

你是對的謝謝你!但大衛先說同樣的事情,所以我會選擇他的答案是正確的。你得到upvote :) –