Php 动画获奖';直到第二个循环才运行

Php 动画获奖';直到第二个循环才运行,php,javascript,jquery,animation,Php,Javascript,Jquery,Animation,这似乎是一个相当利基的问题,但问题来了 我有一个图像滚动,需要是一个连续循环。一切都运行得很好,只是实际动画直到第二次迭代才运行 <?php $images = scandir("Images/scroller"); ?> var images = new Array(); images = <?php echo json_encode($images); ?>; var i = 0; function newImg(){ if(i == images.lengt

这似乎是一个相当利基的问题,但问题来了

我有一个图像滚动,需要是一个连续循环。一切都运行得很好,只是实际动画直到第二次迭代才运行

<?php $images = scandir("Images/scroller"); ?>
var images = new Array();
images = <?php echo json_encode($images); ?>;
var i = 0;
function newImg(){
    if(i == images.length){
        i = 2;
    }

    var currentPicWidth = $("#wide").children().first().width() * -1;
    $("#wide").children().first().animate({'marginLeft': currentPicWidth}, 3200, "linear", function(){
        $("#wide").append("<img src='Images/scroller/" + images[i] + "' name='" + i + "' class='imgScroll'>\n").children().first().remove();
        i++;
        window.newImg();
    });
}
.
.
.
<div id="imageScroller">
    <div id="wide">
        <?php
            for($i = 2; $i < 10; $i++){
                echo "<img src='Images/scroller/" . $images[$i] . "' name='" . $i . "' class='imgScroll'>";
            }
        ?>
    </div>
</div>
.
.
.

<script type="text/javascript">
    $(document).ready(initPage(), newImg());
</script>

var images=新数组();
图像=;
var i=0;
函数newImg(){
if(i==images.length){
i=2;
}
var currentPicWidth=$(“#wide”).children().first().width()*-1;
$(“#宽”).children().first().animate({'marginLeft':currentPicWidth},3200,“线性”,函数(){
$(“#宽”).append(“\n”).children().first().remove();
i++;
window.newImg();
});
}
.
.
.
.
.
.
$(document).ready(initPage(),newImg());
因此,由于我的动画是环保型的,并根据需要垃圾/创建新元素,因此在3.2秒内没有动画运行,然后第一个图像被垃圾,动画开始


有什么巧妙的修改吗?

您提供的语法是从原始脚本中删去的,但这不是问题所在 问题是$(document).ready() Ready在接收到所有元素后执行,但没有完全加载(我指的是在屏幕上呈现)。 所以,在ready中,您不能像您这样访问元素的css属性,比如图像的宽度 如果你第一次提醒宽度,它将为零 另一种选择是

<body onload="newImg()"> ... </body> it will work 
注意,jquery中有加载的快捷方式

$(window).load(newImg); But it's deprecated in version 1.8

给我一些输出的html、css和javascript:这是什么
$(document).ready(initPage(),newImg())
.ready
只接受一个参数,它是处理函数的名称(不带括号)@koala_dev,我在
initPage()
中放置了一个
window.newImg()
,它仍在执行。这可能是不正确的语法,但Chrome没有捕捉到它,JSFIDLE也没有捕捉到它,它工作得很好。FIDLE将所有内容都包装在一个docuemnt中function@koala_dev抢手货在小提琴中工作,在应用中失败。查看演示站点。
$(window).load(newImg); But it's deprecated in version 1.8