javascript - forEach 循环中的 jQuery 动画

标签 javascript jquery foreach

我正在尝试在 forEach(); 中使用 append(); 附加 jQuery .fadeIn("slow");按以下方式循环:

items.forEach(function (item) {
     showData.append('<div>Test</div>').fadeIn('slow');
});

但是,一旦触发循环,添加的 div 数量仍然不会添加淡入淡出效果。关于如何通过 jQuery 或 CSS 获得淡入淡出效果的任何想法都是最好的解决方案。

最佳答案

您正在为 showData 元素设置动画,无论它是什么,它可能已经可见。
您想要的可能是对插入的 DIV 进行动画处理

要使元素一个接一个地出现,您可以使用随着每次迭代而增加的延迟

var items  = [1, 2, 3, 4, 5, 6],
  showData = $('#test');

items.forEach(function(item, index) {
  $('<div />', {
    text : 'Test',
    css  : {display: 'none'}
  }).delay(index * 600).fadeIn('slow').appendTo(showData);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test"></div>

当然,元素必须先隐藏才能淡入

关于javascript - forEach 循环中的 jQuery 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45709686/

相关文章:

javascript - 使用转换 :translate on parent 时固定元素出现问题

javascript - 观察浏览器窗口

javascript - 如果数据为 NULL,则隐藏 <a> 标记

javascript - 缓存来自 API 查询的信息 - 限制为每 10 秒 10 条

jquery - 使用数据:text/css?是否有效

php - 如何从多维数组输出值

PHP PDO 查询,具有从数组中获取的多个条件

javascript - 为什么nodelist没有forEach?

javascript - 为什么我的 Jquery 函数没有改变文本区域的高度?

javascript - 将 javascript 应用于所有按钮