I have this snippet. The welcome div is for a welcome animation on the page that lasts 3.5 seconds and then disappears.
The problem is that the overflow is visible, being able to see the elements that I would like to be visible only after the welcome animation is finished. As a solution to this problem, I thought of javascript, inserting another function for setTimeOut for body with hidden overflow
setTimeout (function () { document.querySelector (‘. body’). style.overflow = ‘hidden’;
}, 3500);
But it does not work. I want the animation to last x seconds and then all the elements of the page to be visible, not during the animation. Do you have solutions? Is this method as effective for a beginning animation as other modern sites have?
setTimeout(function() { document.querySelector('.welcome').style.display ='none' ; },3500) ;
*{ margin:0; padding:0; box-sizing:border-box; } .welcome{ background:black; height:100vh; display:flex; align-items:center; justify-content:center; }
<div class = "welcome"> </div> <div class = "header"> <div class = "developedbar"> <h2 class ="developed1">Developed</h2> <h2 class ="developed2">Developed</h2> </div>
Advertisement
Answer
Just wrap the content you want to appear after, inside a div or section (say, with an id #mainContent
) and initially set its’s display to none
. When you change the display of .welcome
to none
, you can also change the display of #mainContent
to block
like this:
setTimeout(function() { document.querySelector('.welcome').style.display ='none'; document.querySelector('#mainContent').style.display ='block' ; },3500) ;
*{ margin:0; padding:0; box-sizing:border-box; } .welcome{ background:black; height:50vh; display:flex; align-items:center; justify-content:center; color: #FFF; } #mainContent {display: none;}
<div class="welcome"> <h1>Welcome</h1> </div> <div id="mainContent"> <div class="header"> <div class= "developedbar"> <h2 class="developed1">Header</h2> </div> </div> <div class="body"> <p>Body content and other text here</p> <p>Body content and other text here</p> <p>Body content and other text here</p> <p>Body content and other text here</p> </div> <div class="footer"> <h2 class="developed1">Footer</h2> </div> </div>