我正在尝试遍历一组div标签,并逐个淡入淡出.
到目前为止,使用.each()运算符,它会立即执行所有操作.
你如何使用.each()作为每个循环的更经典?
这是我的JQuery代码片段,目前它将所有div标签一并一个地淡入淡出.
$("document").ready(function() {
// all div tags are hidden at start
$(".myclass").each(function (i) {
var $div = $(this);
showDiv($div);
hideDiv($div);
});
function showDiv(theDiv)
{
$(theDiv).fadeIn(4000);
}
function hideDiv(theDiv)
{
$(theDiv).fadeOut(4000);
}
});
谢谢你考虑这个问题,
最佳答案
这不是关于使用.each()与plain for循环.问题是动画是通过超时处理的(由jQuery管理).在动画发生之前,立即返回.fadeIn()和.fadeOut()的调用.
您可以为每个fadeIn()添加一些延迟,或者您可以以不同方式构造代码:
$("document").ready(function() {
var divs = $('.myclass'),i = 0;
function reveal() {
if (i === divs.length) return;
divs.eq(i).fadeIn(4000,function() {
divs.eq(i).fadeOut(4000,function() {
i++;
setTimeout(reveal,0);
});
});
}
setTimeout(reveal,0);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。