javascript - 有没有办法在没有异步的情况下获取 dom.style changed 钩子(Hook)?

标签 javascript html css

我们知道,css animation/transition 不适用于 display: block&display: none; 所以我尝试使用

someDom.style.transition = '0.3s'
someDom.style.display='block'
someDom.style.opacity=1

fadeIn 播放动画。 但还是不行,因为它运行得太快了。 我知道 setTimeout 这次会很好用,但由于 javaScript 事件循环,我不希望它变成异步事件。

最佳答案

也许这会解决你的问题

const item = document.querySelector('.item');

item.style.display = 'block';
item.classList.add('fadeIn');
.item {
  display: none;
  width: 100px;
  height: 100px;
  background: grey;
}

.item.fadeIn {
  animation: fadeIn 1s linear;
  -webkit-animation: fadeIn 1s linear;
  -moz-animation: fadeIn 1s linear;
  -o-animation: fadeIn 1s linear;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
<div class="item"></div>

关于javascript - 有没有办法在没有异步的情况下获取 dom.style changed 钩子(Hook)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51206864/

相关文章:

数组中的javascript随机项目?

javascript - 显示复选框中的所有选定项目

javascript - 如何在三个js中使用verticesNeedUpdate来更新3D立方体的顶点?

javascript - 使用react.js以水平方式显示图像列表

html - 响应式幻灯片和页脚定位

html - 输入文本区域nowrap

html - Snap.svg 动画

javascript - 如何在多个html中调用静态页眉和页脚

css - Joomla:自定义模板 CSS 不工作

Javascript:保存和恢复样式状态在 IE 中不起作用?