通过指向X,Y坐标来移动图像

时间:2013-10-24 12:43:29

标签: javascript jquery css offset

我有以下代码:

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 个答案:

答案 0 :(得分:2)

您正在为函数设置topleft的值。执行该代码时,将对其进行一次评估。如果希望player移动,您希望在mousedown侦听器中执行该代码。

答案 1 :(得分: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