2015-11-21 22 views
2

我試圖在每個會話的主頁上僅顯示一次介紹/啓動畫面。我確實有它與下面的腳本工作,但它在初始網站負載上運行splash/intro之前快速「閃爍」主頁(隨後的網站負載不顯示所需div的div)使用jQuery在每個會話中顯示一次啓動屏幕...加載期間主頁「閃爍」

我有一個div最初隱藏了一類.splash_section &我正在運行下面包含的腳本。

問題:有沒有更好的方法來編寫腳本,或只是一種方法來防止主頁或主體在介紹節目之前快速「閃爍」?

$(document).ready(function(){ 

if (sessionStorage.getItem('splash') !== 'true') { 
$('.splash_section').show() 
sessionStorage.setItem('splash','true'); 
} 

}); 

感謝您的任何幫助提前。

+0

爲什麼你需要證明元素?我在問,因爲試圖解釋什麼是您的最終目標可以提供更好的解決方案 – neoDev

+1

它的字面意思是爲客戶的簡單小冊子類型網站啓動屏幕介紹。我試圖說服他們我們不需要它,但是如果他們堅持不懈,那麼我想以正確的方式做到這一點...... –

+0

所以你想避免閃光..你可以絕對定位它,並把一些高Z-index,就像9999一樣。這會讓你的元素在任何其他 – neoDev

回答

2

我也隱藏主頁的內容開始,使用CSS:

.home-page { 
    display: none; 
} 

腳本然後更改爲:

$(document).ready(function(){ 

    if (sessionStorage.getItem('splash') !== 'true') { 
     $('.splash_section').show(); 
     sessionStorage.setItem('splash','true'); 
    } 
    else { 
     $('.home-page').fadeIn(); 
    }  
}); 
+1

祝你好運看到任何東西,非JavaScript的瀏覽器... – Shomz

+0

@shomz這是一個javascript問題!誰甚至使用這些? – Vince

+0

忽略/懲罰隱藏內容的網絡爬蟲... – Shomz

0

由於$(document).ready回調火災時,所有的頁面元素解析,最好的辦法是將splash元素放在主體的最上方,然後在該函數後面運行該腳本。這樣它會從頭部加載元數據,加載啓動內容並在任何其他DOM元素加載之前馬上顯示。

事情是這樣的:

<body> 
    <div class="splash_section"></div> 
    <script> 
    if (sessionStorage.getItem('splash') !== 'true') { 
     $('.splash_section').show() 
     sessionStorage.setItem('splash','true'); 
    } 
    </script> 
    ... 
相關問題