我使用此代码生成元素的随机左位置并将其设置为动画。

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属性没有任何作用,我认为它与我添加+ =和“”的方法有所不同,但无法弄清楚如何解决它。

最佳答案

你把引号弄乱了。

假设randomX44,则您正在构建"+=44"字符串而不是+=44,即您的字符串包含引号。

更改

$("#box").animate({left:'"+='+randomX+'"', top:"+=20"},bounceSpeed, "linear", function(){moveBox();});




$("#box").animate({left:'+='+randomX, top:"+=20"},bounceSpeed, "linear", function(){moveBox();});

09-28 05:51