首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Javascript (jQuery)顺序淡入div?

如何使用Javascript (jQuery)顺序淡入div?
EN

Stack Overflow用户
提问于 2012-11-05 00:53:49
回答 2查看 815关注 0票数 1

我想要的是通过添加一个类,在页面加载时一个接一个地淡出我的侧边栏。

我尝试过以下几种方法:

代码语言:javascript
复制
var a = $(".sidebar-box"), delayTime = 2000;

for(var i = 0; i < a.length; i++) {
    setTimeout(function(
        var ai = $(a[i]);
        ai.addClass("fade in");
        console.log(ai);
    ), delayTime);

    console.log(delayTime);
    delayTime += 2000;
}

问题是,当第一次添加这个类时,i已经是4了,所以这个类只会被添加到最后一个框中,而实际上它应该被添加到第一个框中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-05 00:55:39

您需要创建一个单独的函数,以便每次都复制变量i

代码语言:javascript
复制
var a = $(".sidebar-box"), delayTime = 2000;

var func = function(i)
{
    setTimeout(function() {
        var ai = $(a[i]);
        ai.addClass("fade in");
    }, delayTime);
}

for(var i = 0; i < a.length; i++) {
    func(i);
    delayTime += 2000;
}
票数 1
EN

Stack Overflow用户

发布于 2012-11-05 01:00:04

如果您对使用jQuery的fadeIn()方法没有意见,那么您可以使用下面的方法,而不是添加一个类并通过CSS进行动画:

代码语言:javascript
复制
var a = $(".sidebar-box"), delayTime = 2000, i = 0;

function animateSideBar() {
    if(i >= a.length) return;

    // call fadeIn, and pass this function itself as the completion callback
    $(a[i]).fadeIn(delayTime, animateSideBar);

    i++;
}

animateSideBar(); // start it
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13220675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档