繁体   English   中英

5秒后如何使弹出窗口平滑显示?

[英]How can I make my popup appear smoothly after 5 seconds?

使用CSS3过渡属性和不透明性,弹出窗口将在5秒钟后顺利出现并覆盖全屏,但是它一次全部出现。

JSFiddle: https ://jsfiddle.net/dnvk87xL/

 var element = document.getElementById("popup"); var t=setTimeout(openPopUp,5000); function openPopUp() { element = document.getElementById("popup"); element.style.display = "block"; element.style.opacity = "1"; } 
 #popup{ position: fixed; height:100%; background-color: green; display: none; opacity: 0; -webkit-transition: opacity 0.7s; transition: opacity 0.7s; } 
 <div> <div id="popup"> I'm gonna appear smoothly after 5 seconds </div> <p> Website content </p> </div> 

“显示”不是可设置动画的CSS属性。 而是尝试使用“可见性”。

 var element = document.getElementById("popup"); var t=setTimeout(openPopUp,5000); function openPopUp() { element = document.getElementById("popup"); element.style.visibility = "visible"; element.style.opacity = "1"; } 
 #popup{ position: fixed; height:100%; background-color: green; display: block; visibility: hidden; opacity: 0; -webkit-transition: opacity 0.7s; transition: opacity 0.7s; } 
 <div> <div id="popup"> I'm gonna appear smoothly after 5 seconds </div> <p> Website content </p> </div> 

为什么不设置display: block; 从开始? 添加z索引也将其移至背景,然后再对其进行更改。 看看这个:

 var element = document.getElementById("popup"); var t=setTimeout(openPopUp,5000); function openPopUp() { element = document.getElementById("popup"); element.style.opacity = "1"; element.style.zIndex = "1"; } 
 #popup{ position: fixed; height:100%; background-color: green; display: block; opacity: 0; -webkit-transition: opacity 0.7s; transition: opacity 0.7s; z-index:-1; } 
 <div> <div id="popup"> I'm gonna appear smoothly after 5 seconds </div> <p> Website content </p> </div> 

您可以在setTimeout使用JQuery函数FadeIn

var timer = setTimeout(function(){
    element.FadeIn('slow');
}, 5000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM