Reputation: 15
I am creating a WordPress website. I want to add a page loader. The page loader works (I created it using CSS). I added a div in header. However, the page loader won't hide/disappear once the page has been fully loaded. This is causing my pages to be inactive, by that I mean I cannot click on anything on my site once it's loaded as the page loader is still on "top" of everything.
// WP JQuery wrapper
jQuery(document).ready(function ($) {
//***** Page Loader Call ***** //
$(document).ready(function() {
$(.'se-pre-con').animate();
});
$(window).load(function() {
$('#loader-wrapper").hide();
});
}
#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000;
}
.se-pre-con {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #3498db;
-webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
}
.se-pre-con:before {
content: "";
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #e74c3c;
-webkit-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
animation: spin 3s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
}
.se-pre-con:after {
content: "";
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #f9c922;
-webkit-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
animation: spin 1.5s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(0deg); /* IE 9 */
transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
}
100% {
-webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(360deg); /* IE 9 */
transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(0deg); /* IE 9 */
transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
}
100% {
-webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(360deg); /* IE 9 */
transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */
}
}
<body <?php body_class(); ?>>
<div id=loader-wrapper>
<div class="se-pre-con"></div>
</div>
</body>
Upvotes: 1
Views: 1565
Reputation: 241
You can try this,
Add the following in wp header.php
<div id=loader-wrapper>
<div class="se-pre-con"></div>
</div>
In your css file
.hidden {
display: none !important;
}
Add the following code in your footer.php or any file
//on page loading hide the page loader
$(window).load(function(){
$("#loader-wrapper").addClass("hidden");
});
Here is the fiddle: https://jsfiddle.net/6v7sccuf/12/
Upvotes: 1
Reputation: 1193
You have syntax errors. Try below code in script
jQuery(document).ready(function() {
jQuery('.se-pre-con').animate();
});
jQuery(window).load(function() {
jQuery('#loader-wrapper').hide();
});
Upvotes: 3