在while循环中运行动画

时间:2013-10-21 12:18:25

标签: javascript php loops animation while-loop

我一直在尝试在我的while循环中做javascript动画,就像永远一样,但它只是受到动画影响的数组的最后一行。我有很多行将在动画中,所以在我的while循环之后保存所有变量将给我200万行手动保存,如果我这样做。

如果能尽可能好地解决这个问题,任何提示或事情都会很棒! 感谢

编辑代码//非常简单的例子

<?php

while($rows = mysql_fetch_array($data)){

$data = $rows['data'];

?>
<div id="square" style="height:50px; width:50px; background:yellow;" </div>
<script>

var data = '<?php echo $data; ?>';

setTimeout("call()",100);
function call() {

        if(data == "hello"){ //bad example 
        $('#square').animate({ left: (600), top: (200) }, 2000);                
        }
        else if(data == "bye"){
        $('#square').animate({ left: (100), top: (100) }, 2000);                
        }
        //etc... 
}
</script>

<?php
}
?>
像这样的东西:) 在这个例子中,它将以我的数组中的行数输出square。所以基本上我希望所有方块都是动画的。

1 个答案:

答案 0 :(得分:0)

您的 PHP while循环正在生成<div>的多个副本,所有副本都具有相同的 id id="square" ID 应该是唯一的,因此多次使用相同的 ID 可能会导致意外行为,例如只能查找其中一个元素。< / p>

ID 最相似的属性是多次使用 class 属性。

此外,您多次生成一个名为<script>函数call。每次执行<script>中的代码时,都会导致旧的call 函数被新的覆盖。这意味着只有最新的内存才会存在。

尝试将 JavaScript PHP 分开,然后多次使用相同的 id 。这应该可以提高代码的有效性并解决您的问题。

最后一点,将 String 传递给setTimeout会导致其行为类似于eval,不鼓励这种行为。直接将您的功能传递给它。