遍历并显示隐藏的子div jquery

Posted

技术标签:

【中文标题】遍历并显示隐藏的子div jquery【英文标题】:iterating through and showing hidden child divs jquery 【发布时间】:2016-07-23 09:28:37 【问题描述】:

我有<div id='content'> <p> foo </p> <p> bar </p> </div>。每个<p> 标签都将CSS 设置为visbility: hidden。 我想遍历<div id='content'> 中的每个<p> 标签,将段落的可见性更改为visible,延迟500,然后对下一段执行相同的操作。我知道.delay(500) 不适用于CSS 动画,您需要使用.queue(),但我不知道该怎么做。

$('#content').children('p').each(function() 

       $(this).css('visibility', 'visible'); 
       //delay before continuing iteration
);

CSS:

#content

    position: absolute;
    font-size: 25px;
    width: 50%;
    top: 20%;
    left: 5%;
    -moz-animation-duration: 2s; 
    -moz-animation-delay: 1s;
    -moz-animation-iteration-count: 1;

p

    -moz-animation-duration: 1s; 
    -moz-animation-delay: 2s;
    -moz-animation-iteration-count: 1;
    visibility: hidden;

【问题讨论】:

你也可以发布你的css吗? 全部完成,. . . . . jsfiddle.net/tvz039nk 只设置一个setInterval,当你遍历所有children时清除它? @Tasos:谢谢!这行得通。 __OBJECTS.shift() 是否只是将顶部元素推离队列并移至下一个元素?特里,我试过了,但一定是做错了什么。 【参考方案1】:

正如@Tasos 建议的那样,

var __OBJECTS = [];

$('#content').children('p').each(function() 
    __OBJECTS.push($(this));
);

addPositioningClasses();

function addPositioningClasses() 
    var $card = __OBJECTS.shift();
    $card.css('visibility', 'visible'); 
    if (__OBJECTS.length) 
        setTimeout(addPositioningClasses, 500)
    

效果很好。

【讨论】:

【参考方案2】:

正如我从标题中了解到的,你需要 JQ,所以你可以使用这个代码

$('#content').children('p').each(function (index, elem) 
    setTimeout(function () 
    $(elem).css(visibility: 'visible');
  , 500 * index);
);

https://jsfiddle.net/tvz039nk/3/

【讨论】:

以上是关于遍历并显示隐藏的子div jquery的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 在特定时间间隔显示和隐藏 div

用jquery怎么实现点击显示,再一次点击隐藏

jquery显示隐藏div

jQuery mouseover / mouseout 显示/隐藏 div

怎样用Jquery 显示和隐藏div

怎样用jquery控制div的显示与隐藏