javascript - 如何按顺序显示div?
问题描述
我正在为自己创建一个网站,并希望在页面加载后使带有文本的 div 按顺序显示(出现之间的一些间隔会很好)。我不需要任何特殊的动画。
我试图在 Stack Overflow 或其他任何地方找到一些东西,但我找不到。它应该是某种信使的“副本”。
这是我得到的:
<div class="messages-area">
<div class="message bubbledLeft">
<p>Hey!</p>
</div>
<div class="message bubbledLeft last-bubbled-left">
<p>Did you hear about it?</p>
</div>
<div class="message bubbledRight last-bubbled-right">
<p>Huh? About what?</p>
</div>
<div class="message bubbledLeft">
<p>About this new website!</p>
</div>
</div>
解决方案
您可以首先使用 CSS 隐藏它们(例如display: none
在.message
类中使用),然后使用返回的承诺.delay().promise()
延迟显示它们,并将这些承诺与reduce
:
$(".message").get().reduce(function (acc, div) {
return acc.then(function () {
return $(div).show().delay(400).promise();
});
}, $.when()); // start with a resolved promise
.message { display: none };
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<div class="messages-area">
<div class="message bubbledLeft">
<p>Hey!</p>
</div>
<div class="message bubbledLeft last-bubbled-left">
<p>Did you hear about it?</p>
</div>
<div class="message bubbledRight last-bubbled-right">
<p>Huh? About what?</p>
</div>
<div class="message bubbledLeft">
<p>About this new website!</p>
</div>
</div>
推荐阅读
- node.js - 404 快线
- python - 如何在点 FLASK 之后将输入限制为仅一位数字
- javascript - React Hooks + Media Query 页面刷新问题
- flutter - 是否可以将字符串转换为列表的名称?
- mysql - 使用 sql 检查不和谐消息
- asp.net-mvc - 使用身份服务时,RequireJS 与异步和谷歌地图 api 不一致的错误
- xml - 如何从 XSLT 中的 xml 文件中删除额外的 xml 声明?
- android - 单元测试 SAF 文件/目录操作
- c - 如何用循环缓冲区解决这个问题?
- python-3.x - Mac 无法安装“dlib”