Jquery 使用增量移动css位置

Jquery 使用增量移动css位置,jquery,css,Jquery,Css,我正在尝试使用jQuery和css将元素位置从当前位置移动。但是,我使用的语法似乎没有任何作用: var ball = $("#ball1"); var movement = { x: 5, y: 5 } ball.css({ top: "+="+movement.y, //+= adds the value left: "+="+movement.x }); 有人能确认我在ball.css({下的代码是否正确吗?它不正确。你让我使用这样的东西 ball.cs

我正在尝试使用jQuery和css将元素位置从当前位置移动。但是,我使用的语法似乎没有任何作用:

var ball = $("#ball1");
var movement = {
    x: 5,
    y: 5
}
ball.css({
    top: "+="+movement.y,  //+= adds the value
    left: "+="+movement.x
});

有人能确认我在
ball.css({
下的代码是否正确吗?

它不正确。你让我使用这样的东西

ball.css({
    top: parseInt(ball.css('top')) + movement.y + 'px',
    left: parseInt(ball.css('left')) + movement.x + 'px'
});
获取匹配元素集中第一个元素的计算样式特性

正如你在网站上看到的,
jQuery.css
会给我们计算出的值,这意味着如果
左边的
值是
15px
,我们就不会得到
15
。为此,我们必须使用
parseInt
。检查这个答案,了解更多的用法。所以这应该是its的工作,但正如有人在t上回答的那样在这篇文章中,我们可以创建一个jQuery插件,让它看起来更漂亮:

jQuery.fn.cssNumber = function(prop){
    var v = parseInt(this.css(prop), 10);
    return isNaN(v) ? 0 : v;
};

ball.css({
    top: ball.cssNumber('top') + movement.y + 'px',
    left: ball.cssNumber('left') + movement.x + 'px'
});
我还为您创建了一个。试试这个

ball.css({
    top: +movement.y,
    left: +movement.x
});

这似乎移动了它,然后又回到原来的状态position@MarksCode你能把你的代码放在一把小提琴里以便于理解吗?是的,给你,谢谢你的帮助:)有一个“BlueBall.png”但是在我的本地机器上,它不会出现在小提琴中,它不会为我移动。我尝试阅读Jquery.fn文档,但我不完全理解它。它是否覆盖了
cssNumber
,或者创建了一个名为
cssNumber
的新函数?为了更好地理解这一点,您应该阅读