使用ES6和CSS3淡入和淡出

eig*_*ose 6 javascript css css3

所以我有一个函数,我试图通过数组创建循环,以使用JavaScript更新div的innerHTML。我希望将不透明度设置为0,然后在每次设置新数据之间将其设置为1,而不使用jQuery的fadeIn()和fadeOut()。

这是我到目前为止所拥有的。我想我已经很近了,但是不确定我在做什么,那会有点偏离。

谢谢!

 slide(index, tweets, element) {
    let self = this;

    element.innerHTML = data[index].text;
    element.style.opacity = 1;

    setTimeout(() => {
        index++;
        element.style.opacity = 0;
        setTimeout(self.slide(index, data, element), 2000);
    }, 5000);
}
Run Code Online (Sandbox Code Playgroud)

编辑 我忘了提到我通过将类添加到我的div来改变动画,从而将CSS3用于动画:

transition: opacity 2s ease-in-out;
Run Code Online (Sandbox Code Playgroud)

小智 6

我不知道您提供的代码与当前问题有何关系,但是这里有一个有关如何淡出,更改文本然后再淡入的简单演示。

您应该可以根据需要扩展此功能。

var d = document.querySelector("div");

window.addEventListener("load", function() {
  d.classList.add("hidden");
});

var i = 0;

d.addEventListener("transitionend", function() {
  if (this.classList.contains("hidden")) {
    i++;
    this.innerHTML = "SUCCESS! ---> " + i;
  }
  this.classList.toggle("hidden");
});
Run Code Online (Sandbox Code Playgroud)
div {
  opacity: 1;
  transition: opacity 2s;
}

div.hidden {
  opacity: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div>LOADING...</div>
Run Code Online (Sandbox Code Playgroud)

它只是添加了hidden触发淡出的类,并绑定了transitionend处理程序以更改文本并删除了淡入的类。