$(function(){
// função para o loading
function callLoading(timeOutLoad){
$(".loader").addClass("active");
setTimeout(function(){
$(".loader").removeClass("active");
}, timeOutLoad);
}
// click no button
$(".active-load").on("click", function(){
// chama a função do load
callLoading(3000);
});
});
<button class="btn active-load">ativar load</button>
<div class="loader"></div>
.loader {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
z-index: 99999;
background: url(https://media.tenor.com/images/a8af247d50aa3638ea92a5638ba82644/tenor.gif) no-repeat center center / 50%;
background-color:rgba(0,0,0,0.5);
opacity:0;
display:none;
transition:0.5s;
}
.loader.active{
display:block;
opacity:1;
transition:0.5s;
}
.btn{
background-color: #4CAF50;
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
}