我试图使用jQuery和css将元素位置从当前位置移开。但是,我使用的语法似乎没有做任何事情:
var ball = $("#ball1");
var movement = {
x: 5,
y: 5
}
ball.css({
top: "+="+movement.y, //+= adds the value
left: "+="+movement.x
});
有人可以确认我ball.css({
下的代码是否正确吗?
答案 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
});