我使用此代码生成元素的随机左位置并将其设置为动画。
function moveBox() {
var randomSpeed = Math.round(Math.random()*200);
var bounceSpeed = defaultSpeed + randomSpeed;
var randomX = Math.round(Math.random()*200);
$("#box").animate({left:'"+='+randomX+'"', top:"+=20"},bounceSpeed, "linear", function(){moveBox();});
};
但是由于某种原因它不起作用。顶级动画完美无瑕,因为它只是普通数字。但是left属性没有任何作用,我认为它与我添加+ =和“”的方法有所不同,但无法弄清楚如何解决它。
最佳答案
你把引号弄乱了。
假设randomX
是44
,则您正在构建"+=44"
字符串而不是+=44
,即您的字符串包含引号。
更改
$("#box").animate({left:'"+='+randomX+'"', top:"+=20"},bounceSpeed, "linear", function(){moveBox();});
至
$("#box").animate({left:'+='+randomX, top:"+=20"},bounceSpeed, "linear", function(){moveBox();});