动画赢得't运行到第二个循环
Animation won't run until second loop
这似乎是一个非常小众的问题,但问题到此为止。
我有一个图像滚动条,需要是一个连续的循环。除了实际的动画直到第二次迭代才运行之外,一切都运行得很好。
<?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>
因此,由于我的动画是环保的,并且可以根据需要破坏/创建新元素,所以在3.2秒内没有动画运行,然后第一个图像被破坏,动画开始。
有什么聪明的办法吗?
您提供的语法是从原始脚本中截取的,但这不是问题所在问题是$(document).ready()Ready在接收到所有元素后执行,但没有完全加载(我的意思是在屏幕上渲染)。因此,在ready中,您无法像访问图像宽度这样访问元素的css属性如果你第一次提醒宽度,它将为零另一种选择是
<body onload="newImg()"> ... </body> it will work
或jquery方法
$(window).bind("load",newImg);
注意,jquery 中有加载的快捷方式
$(window).load(newImg); But it's deprecated in version 1.8
相关文章:
- 下拉选择可自动更改第二个下拉选择
- 为什么不'在JQuery中找到第二个css选择器的工作
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- CORS-重定向到第二个GET正在接收的页面
- 如何使用JS/nightwatchjs并行运行多个测试
- 正则表达式与数字中的第二个点匹配
- 如何在react js中移动第二个组件
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 关闭第二个事件源上的第一个事件源's onopen方法
- D3从嵌套的JSON中绘制第二个圆环图
- IE11中的第二个调用取消了第一个Fetch API调用
- 如何在第一个函数完全完成后才运行第二个Javascript函数
- 运行 AJAX 函数的多个实例 - 仅第二个实例更新
- 为什么第二个函数不运行,在这个 javascript 的异步示例中
- 回调未运行第二个函数
- retrieve()中的第二个参数;始终在运行
- 动画赢得't运行到第二个循环
- Jquery blur函数:在第一个函数之后运行第二个函数.如何去做
- 无法运行第二个警报
- 当存在两个同名函数时,为什么只有第二个函数运行?