【问题标题】:Disappears after passing a certain time经过一定时间后消失
【发布时间】:2019-04-04 19:39:54
【问题描述】:

只是CSS的一个p我想在一段时间后消失我在这里找到了这个,但是相反的而不是隐藏出现https://stackoverflow.com/a/31751324/10634372

【问题讨论】:

  • 只需将.show() 更改为.hide()
  • 您的实际问题是什么?请在问题本身中包含与问题相关的任何代码。什么是“只是 CSS 的一个 p”?
  • 正如 Jon P 所说,您的要求确实很不清楚。链接到其他问题或外部代码将使很多人无法调查您的问题。请清楚地描述您想做什么并展示您已经尝试过的内容。
  • 我只是想要这段代码的相反方式 - .show 隐藏stackoverflow.com/a/31751324/10634372

标签: javascript html css


【解决方案1】:

您可以按如下方式省去 JavaScript 的 setTimeout():

$(document).ready(function() {
$("#proceed").show();
  });

$("button").click(function(){
  $("#wait").hide("slow");
  $(this).fadeOut("slow");

  $("#welcome")
.delay(500)
  .queue(function (next) { 
$(this).fadeIn(); 
$(this).animate({"font-size":"56pt","letter-spacing":".3em"},"fast");
next(); 
  });

});
  
#proceed {
      display: none;
}

#wait {
font: 1em Arial,Helvetica;
padding:0;
margin:0;
}

 #welcome {
 display:none;
 color:red;
 font-family: Arial,Helvetica;
 text-shadow: 3px 4px #999;
 }
 
 span {
 margin:0;
 }
 
 button {
 margin-left:45%;
 }

 p {
   background-color:beige;
   text-align:center;
 }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p><span id="wait">You need to wait 0 before you can proceed.</span>  
<span  id="welcome">Welcome</span></p>
<button type="button" id="proceed">proceed</button>

jQuery 为 HTML 元素提供了不同的方法来控制它们的显示,例如 .hide()、.show()、.fadeIn() 和 .fadeOut(),其中每个都可以采用字符串参数,例如“slow”或“快速”或一个数字来指定效果的持续时间。

当谈到 CSS 属性的设置速度时,还有其他可用的东西,即 queue function,您可以执行它 delay。此示例代码的那部分来自给出的答案here。但是,请注意以下几点:

".delay() 方法最适合在队列 jQuery 之间进行延迟 效果。 —.delay() 不是 JavaScript 原生的替代品 setTimeout 函数,可能更适合某些用途 例。”

来源:here

animate() 方法还可以影响元素显示的速度。

【讨论】:

    【解决方案2】:

    在另一个堆栈溢出答案的代码中,代码显示$("#proceed").show(); 删除 .show(); 并将其替换为 .hide();

    完整的代码是:

    <script 
    src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> 
    </script>
    <p>You have <span id="time">5</span> seconds to proceed</p>
    <button type="button" id="proceed">proceed</button>
    
    
    var i = 4;
    var time = $("#time")
    var timer = setInterval(function() {
      time.html(i);
      if (i == 0) {
        $("#proceed").hide();
        clearInterval(timer);
    
      }
      i--;
    }, 1000)
    
    #proceed {
      display: none;
    }
    

    【讨论】:

    • 没有成功,它们立即消失,必须在5秒后消失
    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    相关资源
    最近更新 更多