微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用纯JS每x秒添加CSS动画吗?

如何解决使用纯JS每x秒添加CSS动画吗?

我有一个功能,它每3秒更新一次我主页上的文本,我希望文本在过渡时淡入/淡出。我有处理这个问题的非常简单的关键帧动画(fadeIn / fadeOut),但是我很难找出解决此问题的最佳方法。有人可以给我一些指示吗?谢谢!

  changeHomeText() {
    var count = 0;
    const phrases = ["Phrase 1","Phrase 2","Phrase 3","Phrase 4"];
    var text = document.getElementById('dyntext');
    text.innerHTML = phrases[0];

    setInterval(function() {
      if (count == phrases.length) {
        count=0;
      }
      text.innerHTML = phrases[count];
      count++;
    },3000);

  }

***CSS***

@keyframes fadeIn {
   from {opacity: 0;}
   to {opacity: 1;}
}
@keyframes fadeOut {
   from {opacity: 1;}
   to {opacity: 0;}
}

解决方法

无论您如何为文本添加动画效果,此功能都将永远有效,并且每3秒调用一次以更新文本

var count = 0;
var phrases = ["Phrase 1","Phrase 2","Phrase 3","Phrase 4"];
function changeHomeText() {
    var text = document.getElementById('dyntext');
    text.innerHTML = phrases[count];
    if (count == phrases.length) {
        count=0;
    }
    text.innerHTML = phrases[count];
    count++;

    setTimeout(function () {
        changeHomeText();
    },3000);
}
changeHomeText();

您可以在函数中做任何您想做的事,它每3秒就会重复一次。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。