javascript - 使用 JS 或 JQuery 让 <p> 在一定时间后消失

标签 javascript jquery

我正在开发一个需要显示和隐藏文本的项目。我希望屏幕上出现一节经文,在 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/

相关文章:

JavaScript,幕后

Javascript 函数没有返回值

javascript - 使用页面重新加载,确保所选元素不会重新加载

javascript - Javascript 中的 while 与 setTimeout

javascript - 'click' 上的 jQuery 在更改为 Bootstrap 表后未触发

javascript - 合并 TinyMCE(jQuery 插件)文件

javascript - 如何使用 javascript/jquery 从 url 中提取文件名?

javascript - 使用箭头键删除 div

javascript - Bootstrap轮播不滑动

Java Bean 验证 Spring