javascript - 淡入淡出,没有 jQuery

标签 javascript css

我努力实现以下目标。

我有一篇文章有​​一些内容。当我单击一个按钮时,这篇文章消失了。褪色后,它会获得一个新类,用于以其他方式显示内容。现在我想再次淡入淡出。但我找不到办法做到这一点。

当我执行以下操作时,不透明度从一开始就保持为 1。 transition() 函数由按钮调用。 2000 毫秒后,我调用了一个函数来更改文章的内容。当我仅使用 fadeOut 时,一切正常。但是当我添加 fadeIn() 时,不透明度保持在 1。因此我完全没有淡入淡出。但内容至少还是有变化。

function transition() {
    fadeOut("article");
    setTimeout(listener, 2000);
    fadeIn("article");
}

function fadeOut(element) {
    var ele = document.getElementsByTagName(element);
    ele[0].style.transition = "opacity 2s linear 0s";
    ele[0].style.opacity = 0;
}
function fadeIn(element) {
    var ele = document.getElementsByTagName(element);

    ele[0].style.transition = "opacity 2s linear 0s";
    ele[0].style.opacity = 1;
}

希望有人能给我提示如何解决这个问题。并且请不要对 jQuery 提出任何建议。我想让它变成原生的。

最佳答案

您误解了 setTimeout 的作用。

它总是立即返回,因此您实际上是将不透明度设置为 0,然后立即再次将其设置回 1

试试这个。

 function transition() {
      fadeOut("article");
      setTimeout(function() { fadeIn("article"); }, 2000);
 }

setTimeout 将创建一个后台计时器并返回,让后台计时器滴答作响。您的 fadeIn 函数将在两秒后被调用。

关于javascript - 淡入淡出,没有 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26583397/

相关文章:

javascript - 查询整个类与类中的第一个对象

javascript - 获取第一个单词和换行符之间的内容

javascript - 为什么我必须链接 $el

javascript - Js Ext 锁定编辑网格

html - Mozilla 外观 Checkbox

javascript - 扁平化 JavaScript 中的嵌套对象/数组

html - 当我将 li 列表向右浮动时,它是居中对齐的

android - Android设备上隐藏了滚动条,如何显示垂直滚动条?

jquery - 响应式元素不会在 768 和 785 像素之间正确堆叠

html - 如何避免溢出 :hidden? 的性能成本