Add just under the page <body> tag – Normal
<body>
<!------------------------------------->
<!---- PAGE LOADING COVER ELEMENT ----->
<!------------------------------------->
<div id="page_loading_cover"></div>
<div id="page_loading_cover_animated_icon"></div>
<script>
/* Remove greyed loading page cover once page has finished loading */
//$(window).on('load', function() { //Don't use this as it won't trigger if user presses their back button
$(window).on('pageshow', function() { //'pageshow' triggers for page load and back button back to page
$("#page_loading_cover").hide();
page_loading_cover.style.visibility = "hidden" ;
page_loading_cover_animated_icon.style.visibility = "hidden" ;
});
/* Turn on greyed loading page cover */
function DisablePageUntilReloaded() {
$("#page_loading_cover").show();
page_loading_cover.style.visibility = "visible" ;
page_loading_cover_animated_icon.style.visibility = "visible" ;
}
</script>
Add just under the page <body> tag – WordPress
(Same but needs the ‘$’ changed to ‘jQuery’ or you get “TypeError: $ is not a function” console errors)
<body>
<!------------------------------------->
<!---- PAGE LOADING COVER ELEMENT ----->
<!------------------------------------->
<div id="page_loading_cover"></div>
<div id="page_loading_cover_animated_icon"></div>
<script>
/* Remove greyed loading page cover once page has finished loading */
jQuery(window).on('load', function() {
jQuery("#page_loading_cover").hide();
page_loading_cover.style.visibility = "hidden" ;
page_loading_cover_animated_icon.style.visibility = "hidden" ;
});
/* Turn on greyed loading page cover */
function DisablePageUntilReloaded() {
jQuery("#page_loading_cover").show();
page_loading_cover.style.visibility = "visible" ;
page_loading_cover_animated_icon.style.visibility = "visible" ;
}
</script>
Create a style for it
/*----- PAGE LOADING COVER ELEMENT -----*/
#page_loading_cover {
position: fixed;
height: 100%;
width: 100%;
top:0;
left: 0;
background: #000;
opacity: 0.5;
z-index:9999;
visibility: hidden; /*Include this so element will only be shown when DisablePageUntilReloaded() is called*/
}
/*Spinning icon*/
#page_loading_cover_animated_icon {
border: 12px solid #f3f3f3;
border-radius: 50%;
border-top: 12px solid #3498db;
width: 80px;
height: 80px;
-webkit-animation: animated_icon_spin 2s linear infinite; /* Safari */
animation: animated_icon_spin 2s linear infinite;
position: fixed;
top: 50%;
left: 50%;
margin-top: -40px;
margin-left: -40px;
z-index:9999;
visibility: hidden; /*Include this so element will only be shown when DisablePageUntilReloaded() is called*/
}
/* Safari */
@-webkit-keyframes animated_icon_spin {
0% { -webkit-transform: rotate(0deg); }
100% { -webkit-transform: rotate(360deg); }
}
@keyframes animated_icon_spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
For any form submit you want to trigger it use onsubmit
<form id="my_form" onsubmit="return DisablePageUntilReloaded()" action="\my_page.php" method="POST">
If you have any onchange submit form elements you will need to call the function separately as onchange .submit won’t trigger it:
<input type="checkbox" name="MyCheckbox" value="1" onchange="DisablePageUntilReloaded(); my_form.submit();" >
For any html link you want to trigger it use onclick
<a href="/my_page.php" onclick="DisablePageUntilReloaded()" >Click me</a>
Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.