とあるwordpressサイトを構築しまして、トップページのみページ遷移・ページ更新でフェードインするようにいたしました。
Firefox・Edgeでは問題なく動いているのですが、Chrome・IEにて、移動してきた際にフェードイン前に一瞬コンテンツが表示されてしまいます。
コードは大まかに下記の通りです。
HTML
1<head> 2 <!-- head内上部にdisplay:none; --> 3 <style> 4 body{display:none;} 5 </style> 6 <!-- その他CSS・jqyery読み込み --> 7</head> 8<body> 9 <div class="all_wrap"> 10 <div class="fade_over"></div> 11 <div class="index_content"> 12 <!-- ここにスライドショーなどのコンテンツ --> 13 </div> 14 </div> 15 <script type="text/javascript" src="/common.js"></script> 16</body> 17
jquery
1//common.jsにて 2 $(window).on('load', function(){ 3 $("body").show(); 4 setTimeout(function(){ 5 $(".fade_over").fadeOut("slow"); 6 },500); 7 }); 8 //bodyのshow後、ずらしてfade_overを消しているのはbody内で高さ取得などのjsを動かしているため、 9 //bodyを先に表示させて他のjsを動かして表示を整えてからfade_overを消しているためです
css
1.all_wrap{ 2 position:relative; 3} 4.fade_over{ 5 display:block; 6 position:absolute; 7 left:0; 8 top:0; 9 width:100%; 10 height:100%; 11 background:#FFF; 12 z-index:500; 13} 14
headの上部にてbodyをdisplay:noneしているため、適切に処理されれば表示されないかと思うのですが、一瞬表示されます。
また、トップページ内でランダムでスライドの順番が決まるスライドを一番上に設定しています。(PHPでHTMLごとランダムに表示しています)
読み込みごとに一枚目の画像が変わる仕組みなのですが、一瞬表示されるコンテンツでの画像は必ず同じ画像です。
そのため、キャッシュなのかと思うのですが、head内のスタイルより先にキャッシュが表示されてしまうことはあるのでしょうか。
Chromeのコンソールでの「Network」タブの読み込み時のスクリーンショットを表示する機能(ビデオカメラのマークのような箇所)を見ても、
1msや250msにすでにコンテンツが描画され、その後.fade_overで隠した画面が描画されているようでした。
Wordpressが原因かと思って全く同じHTMLで静的なHTML化してみましたが改善されず、原因が不明です。
なにか解決方法や原因かと思われるものはありますでしょうか?よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー