2012-03-16 36 views
10

Tôi hiện đang sử dụng kịch bản này mờ dần chuyển trang:jquery, ẩn nội dung cho đến tải

$(document).ready(function() { 

    $(window).bind("unload", function() {}); 
    $("body").css("display", "none"); 

    $("body").hide(); 

    $("body").fadeIn(2000); 

    $('a.fade1, a.fade2, a.fade3, a.fade4').click(function(event) { 
     event.preventDefault(); 
     linkLocation = this.href; 
     $("body").fadeOut(700, redirectPage); 
    }); 

    function redirectPage() { 
     window.location = linkLocation; 
    } 

});​ 

này làm việc như một nét duyên dáng khi nội dung là alredy trong bộ nhớ cache, nhưng khi một hình ảnh cần phải tải nó sẽ trong giây lát xuất hiện sau đó được ẩn và nhạt dần trong

vì vậy những gì tôi cần là một cách để che giấu nội dung cho đến khi nó được nạp đầy đủ và chỉ sau đó để cho nó được mờ trong

hy vọng ai đó có thể giúp tôi, cảm ơn trước

+0

Bạn có thể phục vụ trang có 'display: none' trên cơ thể? như vậy nó luôn luôn ẩn cho đến khi jquery đá vào. –

Trả lời

37

Sử dụng CSS để ẩn phần tử theo mặc định và sau đó hiển thị nó khi bạn muốn.

CSS

body { 
    display: none; 
} 

jQuery

$(window).load(function() { 
    // When the page has loaded 
    $("body").fadeIn(2000); 
}); 

Sự kiện nạp sẽ được gửi đến một phần tử khi nó và tất cả các phần tử có được hoàn toàn tải.

Xem load event.

Bạn cũng có thể xem xét để thay thế "fadeX" của bạn bằng lớp duy nhất, một cái gì đó như "phai"

+3

Vấn đề với css là nó phải truy xuất styleshiit trước. vì vậy bạn sẽ phải sử dụng