I am looking to have everything on my page hidden until the page has finished loading. I have seen many posts and tried different things. The most common solution which work
The approach I use it to have a js
class and a hidden-until-ready
class. My hidden until ready styles are only applied if there is a js
class.
e.g
.js .hidden-until-ready {
visibility: hidden;
}
the js
class is applied at the start if JavaScript is enabled.
document.documentElement.className = document.documentElement.className + ' js';
Then in jQuery I remove the hidden-until-ready
once the page has loaded.
jQuery(document).ready(function () {
jQuery('.hidden-until-ready').removeClass('hidden-until-ready');
});
This way the elements of the page are only hidden at the start if JavaScript is enabled and once the page has loaded the elements are visible again.