我正在开发一个需要显示和隐藏文本的项目。我希望屏幕上出现一节经文,在 x 时间后消失,然后出现新的文本。我对 Javascript 和 JQuery 还很陌生,所以我不太确定如何完成这项工作。下面是我到目前为止的代码:
HTML
<p class="mast__text js-spanize" id="verse1">
Magnetic light in the blue-high haze
</p>
<p class="mast__text js-spanize" id="verse2">
A magnifying glass upon my face
</p>
<p class="mast__text js-spanize" id="verse3">
It's so hot I've been melting out here
</p>
JS:
$("#verse1").show();
setTimeout(function() { $("#verse1").hide(); }, 2000);
$("#verse2").show();
setTimeout(function() { $("#verse2").hide(); }, 2000);
$("#verse3").show();
setTimeout(function() { $("#verse3").hide(); }, 2000);
这两个函数似乎同时被调用,这使得文本同时出现和消失。我确信有一个简单的解决方法可以解决这个问题,但我在网上查了一下,似乎无法弄清楚这一点。
最佳答案
问题在于代码假定 setTimeout 函数等待时间结束。相反,代码会继续执行,并记录在指定时间后运行代码。要修复它,您只需嵌套 setTimeout 函数即可:
$("#verse2").hide(); // So these aren't showing at the start
$("#verse3").hide();
$("#verse1").show();
setTimeout(function() {
$("#verse1").hide();
$("#verse2").show();
setTimeout(function() {
$("#verse2").hide();
$("#verse3").show();
setTimeout(function() { $("#verse3").hide(); }, 2000);
}, 2000);
}, 2000);
关于javascript - 使用 JS 或 JQuery 让 <p> 在一定时间后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61648737/