2016-11-25 7 views
0

私は現在jQuery "addClass"と "removeClass"を使ってプリローダーを削除しています。すべてのWebコンテンツがロードされたときにプリローダーページを削除したい。タイムアウト機能を設定するとうまくいくように見えますが、リアルタイムロードのように、サイト全体の読み込みが終了しても同じことをすることはできません。いくつかの助けが高く評価されます。jQueryの.load(関数)と.addClassはPreloaderを削除するために動作しません。

//..HTML..// 

<div class="loader-wrapper"> 
</div> 

//..CSS..// 

.loader-wrapper { 
position: fixed; 
top: 0; 
left: 0; 
width: 100%; 
height: 100%; 
} 

.loaded .loader-wrapper { 
-webkit-transform: translateY(120%); 
-ms-transform: translateY(120%); 
transform: translateY(120%); 
-webkit-transition: all 1s 0.5s ease-out; 
transition: all 1s 0.5s ease-out; 
} 

//..jQuery..// 

<script> 
    $("body").removeClass('loaded'); 
</script> 

<script> 
$(window).load(function() { 
$("body").addClass('loaded'); 
}); 
</script> 


//..For reference this works perfectly..// 

<script> 
$(document).ready(function() { 

setTimeout(function() { 
$("body").addClass('loaded'); 
}, 1800) 

}); 
</script> 
+2

JSコードを2つの別々のスクリプトタグに持つ特別な理由はありますか? – George

+0

それは私に少しきれいに見えます。 –

+0

十分に公正で、個人的に私は[それに反対する理由がある](http://stackoverflow.com/questions/6451156/multiple-versus-single-script-tags)でも何でもそれをお勧めしません。何があなたのhtmlのように見えますか、あなたはajax呼び出しをしていますか? – George

答えて

2

すべての画像がロードされたときに検証するライブラリを使用できます。たとえば、imagesLoadedとなります。

だからあなたのコードでは、そのような何かに見えることがあります。あなたが完全にロードするようにWebページを待っている場合は、

// DOM is ready 
 
$(function() { 
 
    // We have to make sure that all of the images are loaded in the container 
 
    $('body').imagesLoaded(function() { 
 
     // Images are loaded 
 
     $('.loader').hide(); 
 
     $('img').show(); 
 
    }); 
 
});
img { 
 
    display: none 
 
}
<script src="https://code.jquery.com/jquery-3.1.1.js"></script> 
 
<script src="https://npmcdn.com/[email protected]/imagesloaded.pkgd.js"></script> 
 

 
<span class='loader'>Loading ...</span> 
 
<img width="200" src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-logo.png?v=9c558ec15d8a" />

+0

私もこれまでこれをやろうとしましたが、これもうまくいきませんでした。 –

+0

多分あなたは何かを逃した。作者がそれが動作することを確認したので、ここで私の答えをチェックしてください:http://stackoverflow.com/a/39938004/4312466 –

+0

私はそれを見ていますが、参考のために私は私の投稿を編集し、タイムアウト機能が正しく動作しています。 –

-1
You can use the $(document).ready(function(){ // code }); 

を。

+0

[こちら](http://stackoverflow.com/questions/5182016/what-is-the-difference-between-window-load-and-document-ready)をお読みください。 – George

関連する問題