有什么办法可以在没有异步的情况下更改dom.style挂钩?

时间:2018-07-06 09:10:38

标签: javascript html css3

我们知道,css animation/transitiondisplay: blockdisplay: none不兼容; 所以我尝试使用

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

fadeIn的形式播放动画。 但是仍然无法正常工作,因为它运行太快。 我知道setTimeout这次会很好用,但是由于javaScript事件循环的缘故,我不希望它成为异步事件。

1 个答案:

答案 0 :(得分:0)

也许这可以解决您的问题

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>