javascript - 淡入新元素的可靠方法
问题描述
在我的应用程序中,我每秒都会创建一个新元素。它们应该在创建时淡入。我是这样做的:
window.setInterval(() => {
const element = document.createElement('div');
element.classList.add('dot', 'hidden');
document.getElementById('content').appendChild(element);
element.classList.remove('hidden');
}, 1000);
.dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
background-color: rgba(255, 255, 255, .7);
margin: 0 5px 5px 0;
transition: opacity 1s;
}
.hidden {
opacity: 0;
}
我认为这会使过渡工作,但事实并非如此。我还尝试hidden
在延迟后删除该类,如下所示:
setTimeout(() => element.classList.remove('hidden'), 100);
这很有趣,因为它只有在延迟足够长的情况下才有效。如果我将它设置为 10 毫秒,一些点会淡入,而其他点会立即出现。
有没有更好、简单和可靠的方法让它工作,而不用猜测延迟setTimeout()
?
解决方案
如果你想要一个简单的淡入,你可以使用CSS 动画并避免使用 JavaScript。这只会在 DOM 节点被绘制到屏幕上时运行。如果您需要对动画进行更高级的控制,则可以使用 JS。
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
background-color: rgba(255, 255, 255, .7);
margin: 0 5px 5px 0;
animation: 1s linear fadein;
}
推荐阅读
- java - RemoteWebDriver - 调试无头 docker 容器
- c# - C# WSDL soap API - 仅在生产服务器上出现即时错误 401?视窗服务器 2008
- linux - 为什么最新版本的 sys-stat 在杀死后不显示平均值..?
- python - 用 x 轴上的索引值和 y 轴上每列值的频率绘制直方图
- python - 最后一个日历周的纪元时间
- python - dtype('
我对python有点陌生,今天我试图在金融DataFrame(YYYY-MM-DD的第一列和值的第二列)中进行一些操作。当我尝试应用一个简单的 pct_change() 操作时,它给了我这个错误:
TypeError: ufunc true_divide cannot use operands with types dtype('<M8[ns]') and dty
- java - 什么是引导方法参数 - Java 字节码
- moodle - Maxima 是否具有求解线性不等式系统的功能,在 Moodle Stack-exams 上也可以使用?
- continuous-integration - 无法在 TFS 2017 中创建用户组以进行发布批准
- javascript - 在没有 eval 和 jQuery 的情况下计算用户输入