动画不在jquery中工作

时间:2014-06-16 20:29:37

标签: jquery jquery-animate

我只是看不到一些必须显而易见的东西......只是试图给div设置动画...我让jquery动画只使用数字但是我无法使用arrayIndex ... console.log在数组中调用了数字40 ......

<div id="blueCar" > </div>

$( document ).ready(function() {    
var carArrayX = [765,650,460,330,140,40];
var carArrayY = [ 390,390,390,405,445,405];
var carArrayXindex = carArrayX.length -1;

    //$('#blueCar').animate({left:"40px"}); //works!
    //$('#blueCar').animate({left:"carArrayX[carArrayXindex]" + "px"});
    $('#blueCar').animate({left:"carArrayX[carArrayXindex] + px"});

    console.log(carArrayX[carArrayXindex]);
});

2 个答案:

答案 0 :(得分:1)

变化:

$('#blueCar').animate({left:"carArrayX[carArrayXindex] + px"});

为:

$('#blueCar').animate({left:carArrayX[carArrayXindex] + "px"});

<强> jsFiddle example

你在错误的地方有第一个引用。您传递的是字符串,而不是与“px”连接的变量值。

答案 1 :(得分:0)

您将变量名称放在引号中。因此,animate函数实际上将left设置为字符串

"carArrayX[carArrayXIndex] + px"

您需要删除变量标识符上的引号。 Javascript不是PHP,你知道,你不能只将变量名放在字符串中,并期望它们被变量内容替换。当然,作为字符串文字的px仍然需要放在引号中。试试这段代码:

$( document ).ready(function() {    
    var carArrayX = [765,650,460,330,140,40];
    var carArrayY = [ 390,390,390,405,445,405];
    var carArrayXindex = carArrayX.length -1;

    $('#blueCar').animate({left:carArrayX[carArrayXindex] + "px"});

    console.log(carArrayX[carArrayXindex]);
});