首页 > 解决方案 > 用Javascript重写文字效果

问题描述

我在循环中切换文本以获得视觉效果。这就是它的样子https://naejc.github.io/Script/GodsLies

这是代码

const symbols = ['God', 'Words'];
let count = 0;
const element = document.getElementById("WORD1");
const iteration = () => {
element.innerHTML = symbols[parseInt(count / 2, 10) % symbols.length];
if (count % 2 !== 0) {
element.classList.add("LANGUAGE");
} else {
element.classList.remove("LANGUAGE");
}
count++;
if (count === symbols.length * 2) {
count = 0;
}
};
let inthandle = setInterval(iteration, 270);
iteration();

有人可以告诉我如何在多个实例中使用此脚本吗?如果再次使用它没有效果,试图创建另一个切换文本的元素。

标签: javascripthtmlcss

解决方案


您如何尝试创建“新”元素?请注意,每个id页面只能使用一次。它必须是独一无二的。否则 js 代码将使用id它找到的第一个。

https://www.w3schools.com/html/html_id.asp

您可能需要重写代码以使用类或类似的东西:


var initWords = function (element) {
  const symbols = ['God', 'Words'];
  let count = 0;
  const iteration = () => {
    element.innerHTML = symbols[parseInt(count / 2, 10) % symbols.length];
    if (count % 2 !== 0) {
      element.classList.add("LANGUAGE");
    } else {
      element.classList.remove("LANGUAGE");
    }
    count++;
    if (count === symbols.length * 2) {
      count = 0;
    }
  };
  let inthandle = setInterval(iteration, 270);
  iteration();
}

initWords(document.getElementById("WORD1"));
initWords(document.getElementById("WORD2"));

推荐阅读