2013-03-29 3 views
0

У меня есть предварительный загрузчик на этом сайте: http://exit.santamartastudio.es/, и иногда это скрывает прелоадер, а некоторые нет. Я искал его, Но не знаю, почему он терпит неудачу.jQuery Preload not dissapearing

UPDATE (Вот код):

$(document).ready(function(){ 
    setLoader(); 
    Here I load the rest of jquery 
}); 



$(window).load(function() { 
    hideloader(); 
}); 

Функции:

// Setloader 
function setLoader() { 
    disable_scroll(); 
    $('body').css('overflow', 'hidden'); 
} 
// Hideloader 
function hideLoader() { 
    var windowWidth = $(window).width(); //retrieve current window width 

    $('#loader img').animate({ 
    left: '+=' + ((windowWidth/2) + 100) 
    }, 1000, 'easeOutExpo'); 

    $('#loader span').animate({ 
    left: '-=' + ((windowWidth/2) + 100) 
    }, 1000, 'easeOutExpo'); 
    setTimeout(function() { 
    $('#loader').fadeOut(800, 'linear', function(){ 
     enable_scroll(); 
     $('body').css('overflow', 'visible'); 
     $(this).hide(); 
    }); 
    }, 200); 
} 
+0

можно ли увидеть ваш js, который загружает предварительный загрузчик? – Vortex

+0

Консоль дает две ошибки, одна из них: 'ReferenceError: Не удается найти переменную: hideloader'. Попытайтесь использовать '' use strict '; 'поверх вашего JavaScript, чтобы получить наибольшие ошибки STRICT, чтобы вы могли лучше всего отслеживать любые ошибки, которые у вас есть. – 2013-03-31 10:32:31

ответ

1

Проблема ваша hideLoader() не получить срабатывает правильно. Если я наберу это в свою консоль на Safari;

hideLoader(); 

.. все просто происходит, то есть нет ничего плохого в фактической реализации.

Проблема в том, что код «слишком поздно». Вы должны определить, что одна вещь ждет другого. Современные браузеры загружают сценарии очень быстро. Возможно, загрузка еще раньше, чем функция загрузки. В основном я получаю 0.0ms и 0.1ms время загрузки событий DOM.

Вы можете попытаться поместить свой код функции в функцию jQuery и, конечно же, попытаться поместить функции перед привязками (функциями) готового состояния.

Похоже, нет другого объяснения, кроме слишком быстрого запуска готовности. Попробуйте протестировать с большой картиной на странице, так что ваше состояние готовности займет больше времени, вы, вероятно, никогда не получите ошибку в этом случае, так как готовое состояние займет больше времени.

+0

Спасибо за ваш ответ. Perheps для моего английского, но я не совсем понимаю, что вы хотите сделать. Не понимаю. «Вы можете попытаться поместить свой код функции внутри функции jQuery и, конечно же, попытаться поместить функции перед связыванием (функциями) готового состояния». Я поставил весь код в скрипке: [jsfiddle link] (http://jsfiddle.net/demssite/KwgX3/). заранее спасибо –