gpt4 book ai didi

使用 setTimeout() 的 JavaScript 计时事件

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:06 24 4
gpt4 key购买 nike

我正在尝试使用 seTimeout() 淡出然后返回 <div>页面滚动时的元素。 fadeOut()按预期工作,但 fadeIn()只达到 0.1 不透明度。

似乎 <div> 的不透明度元素一直设置为 0,当我调用淡入时,它只会在重置回 0 之前将它提高到 .1。这至少是我的理论,因为我是 JS 的新手,所以我在解决这个问题时遇到了问题.

代码:

function fadeOut() {
console.log("fade out: " + document.getElementById('quotes').style.opacity)
if(document.getElementById('quotes').style.opacity > .11) {
document.getElementById('quotes').style.opacity -= .1;
fadeDelay = setTimeout('fadeOut()',100);
} else {
document.getElementById('quotes').style.opacity = 0;
console.log("stopped fade out.");
}
}

function fadeIn() {
console.log("fade in: " + document.getElementById('quotes').style.opacity)
if(document.getElementById('quotes').style.opacity < .9) {
document.getElementById('quotes').style.opacity += .1;
fadeDelay = setTimeout('fadeIn()',100);
} else {
document.getElementById('quotes').style.opacity = 1;
console.log("stopped fade in.");
}
}

最佳答案

这是一种淡化 dom 元素的奇怪且不常见的方法。我建议您使用 requestAnimationFrame 切换方法或使用 pure css .

在这种情况下,使用 css 是最快、最轻量级和最简单的处理方式。然后你会得到这样的东西:

CSS

#quotes {
-webkit-transition: opacity 0.5s ease-out;
transition: opacity 0.5s ease-out;
}

JS

var quotes = document.getElementById("quotes");

function fadeIn() {
quotes.style.opacity = 1;
}

function fadeOut() {
quotes.style.opacity = 0;
}

您可以根据自己的需要调整时间和曲线。

关于使用 setTimeout() 的 JavaScript 计时事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25392385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com