2013-02-25 13 views
5

To jest moje pierwsze pytanie, więc mam nadzieję, że dam wystarczająco dużo szczegółów. Mam następujący kod w 4 stron na stronie internetowej:jQuery, wyświetlając stronę strony div tylko, jeśli strona zajmuje więcej niż 2 sekundy, aby załadować

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

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

Co ja jestem stara się osiągnąć: Podczas przeglądania dokładna 4 strony, mają #page_loading div zjeżdżać tylko wtedy, gdy strona trwa dłużej niż 2 sekundy załadować. Jeśli załadowanie stron zajmie mniej niż 2 sekundy (zostało wcześniej odwiedzone, a większość obrazów jest buforowana), to blok ładujący się nie wyświetli.

W tym momencie, nawet jeśli strona zajmuje mniej niż sekundę, aby załadować ładowanie, div nadal pojawia się i znika, a to dość denerwujące.

Dziękuję, Cristian.

+0

użyć 'setTimeout', aby opóźnić slajd o dwie sekundy; po dwóch sekundach sprawdź, czy nadal powinieneś się wysunąć. –

+0

, który zadzwoni po 1500 milisekundach – PSR

+0

Cóż, właściwie to jest pytanie, jak sprawdzić, czy strona w pełni załadowała się po 2 sekundach i czy została załadowana, nic nie rób. Jeśli się nie załadował, przesuń w dół element ładujący, który powinien poczekać na załadowanie strony, a następnie wrócić do widoku. –

Odpowiedz

3

Czy to wystarczy?

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

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

Działa doskonale, dzięki! –

Powiązane problemy