使用增量移动css位置

时间:2016-02-05 06:14:03

标签: 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({下的代码是否正确吗?

2 个答案:

答案 0 :(得分:5)

这不正确。你给了这样的东西

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

获取匹配元素集中第一个元素的计算样式属性。

正如您在documentation网站上看到的那样,jQuery.css会向我们提供计算值,这意味着如果15值为{{},我们就不会获得left例如{1}}。为此,我们必须使用15px。检查此答案以获得parseInt的更好用法。所以这应该是它的工作,但正如有人在该帖子上回答的那样,我们可以创建一个jQuery插件,使其看起来更好:

parseInt

我还为你创建了一个working example

答案 1 :(得分:0)

试试这个......

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