Code Snippet
There are times when you only want specific elements of your site to show AFTER the page has finished loading.
For instance, the site may have a hero image, or slider section that loads more slowly than the rest of the page due to the weight of the images involved. And it looks bad when the page loads, and then everything below the slider section jumps to accommodate the spacing of the slider once that section displays.
Note
Technically, this method is NOT waiting for the entire page to load before the jQuery fires and shows the temporarily hidden items. It is a cheat, where it simply waits a specified amount of time in milliseconds before displaying the element(s). This timing can be adjusted in the code below to make it seem to have waited for the entire page to load.
CSS
First, place the following in your CSS document, changing the targeted elements to the section(s) you want to not display until the page has loaded.
visibility: hidden is used so that the space is reserved for the temporarily hidden element(s), so that the page items below that section will NOT jump down when the items are eventually displayed. Everything will be displayed in their intended position on the page right from the start.
/* hidden until page loaded; show via js */
#hero_section, #image_slider {
visibility: hidden;
}
jQuery
Then place the following in your JavaScript document. This will delay the display of those sections for a set time.
- Line 3 has the timing set to wait 300ms; depending on how quickly your site loads, you can increase or decrease this “wait” time
// display these elements with js
setTimeout(function() {
$('#hero_section, #image_slider').css('visibility','visible');
}, 300);
Note
It is generally good practice to place your jQuery code/function inside the document load function so that the action takes place ONLY after the document has finished loading. This ensures that all of the page elements that you may be selecting are in place before running the code on them.
jQuery Notes:
- To use jQuery on your site, it must first be downloaded from the official jQuery site and linked to in your document <head>, or linked to via a CDN in your document <head>
- It is generally good practice to place your jQuery code/function inside the document load function so that the action takes place ONLY after the document has finished loading
- When using jQuery, single or double quotation marks are acceptable and work identically to one another; choose whichever you prefer, and stay consistent
We’d like to acknowledge that we learned a great deal of our coding from W3Schools and TutorialsPoint, borrowing heavily from their teaching process and excellent code examples. We highly recommend both sites to deepen your experience, and further your coding journey. We’re just hitting the basics here at 1SMARTchicken.