2013-02-25 30 views
5

Đây là câu hỏi đầu tiên của tôi, vì vậy hy vọng tôi sẽ cung cấp đủ chi tiết. Tôi có đoạn code sau trong 4 trang trên một trang web:jQuery, chỉ hiển thị div trang tải nếu trang mất hơn 2 giây để tải

$(document).ready(function() { 
    $('#page_loading').slideDown(500); 
}); 

jQuery(window).load(function() { 
    setTimeout(function() {$('#page_loading').slideUp(500);}, 1500); 
}); 

gì tôi Tôi cố gắng để đạt được: Khi duyệt kỹ lưỡng 4 trang, có div trượt #page_loading xuống chỉ nếu trang mất hơn 2 giây để tải. Nếu các trang mất ít hơn 2 giây để tải (đã được truy cập trước đó và hầu hết các hình ảnh được lưu trữ) thì div tải sẽ không hiển thị.

Tại thời điểm này, ngay cả khi trang mất ít hơn một giây để tải div tải vẫn xuất hiện và biến mất, và nó khá khó chịu.

Cảm ơn bạn, Cristian.

+0

sử dụng 'setTimeout' để trì hoãn slideDown hai giây; sau hai giây kiểm tra nếu bạn vẫn nên trượtDown. –

+0

sẽ gọi sau 1500 mili giây – PSR

+0

Vâng, đó thực sự là câu hỏi, làm cách nào để kiểm tra xem trang đã tải hoàn toàn sau 2 giây chưa và nếu trang đã tải xong, không làm gì cả. Nếu nó không tải, hãy trượt xuống div tải, sẽ đợi trang tải và sau đó trượt trở lại từ chế độ xem. –

Trả lời

3

Điều này có giúp ích không?

var showTimeout = setTimeout(function() { 
    $('#page_loading').slideDown(500); 
}, 2000); 

jQuery(window).load(function() { 
    clearTimeout(showTimeout); 
    $('#page_loading').slideUp(500); 
}); 
+0

Làm việc một cách hoàn hảo, cảm ơn! –

Các vấn đề liên quan