2017-02-17 45 views
0

我無法在IE(11)中使用此代碼,我在這裏做錯了什麼? 我需要設置TimeOut嗎?加載窗口中的jQuery addClass在IE中不工作

jQuery(document).ready(function($) { 
 
\t // Smooth load body content 
 
\t $(window).on('load',function() { 
 
\t \t \t $('body').addClass('loaded'); 
 
\t }); 
 
});
body { 
 
    opacity: 0; 
 
    color: black; 
 
    background-color: white; 
 
    -webkit-transition: all 2s ease; /* Safari */ 
 
    transition: all 2s ease; 
 
} 
 
body.loaded { 
 
    opacity: 1; 
 
}
<html> 
 
<body> 
 
    <h1>test</h1> 
 
    <img src="http://placehold.it/400x400"> 
 
    
 
    <script type="text/javascript" language="Javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
</body> 
 
</html>

+0

爲什麼的document.ready處理包裹的window.onload? – raina77ow

+0

在配置'.on(「load」)'處理程序之前,load事件可能已經被觸發了(如@ raina77ow所暗示的那樣)。刪除'.on(load)'部分:'$(function(){$(「body」)。addClass(「loaded」);});' –

回答

1

您可以添加一個事件偵聽器,然後應該跨瀏覽器。 (經過測試的IE11和Chrome)。

if(document.readyState === 'complete') { 
    loadPage(); 
} else { 
    document.addEventListener('readystatechange', function(){ 
     if(document.readyState === 'complete') 
      loadPage(); 
      } 
    )}; 

function loadPage(){ 
    $('body').addClass('loaded'); 
} 

JsFiddle demo