Ошибка JavaScript / Fancybox? - PullRequest
       10

Ошибка JavaScript / Fancybox?

4 голосов
/ 04 августа 2011

На моей странице у меня есть 6 полей под основным изображением, которое использует JS, чтобы иметь эффект затухания. На этой странице у меня также есть Fancybox Load в начале страницы (с использованием onload), чтобы показать изображение, которое должен видеть пользователь.

Проблема заключается в том, что когда пользователь впервые загружает страницу, одна из коробок будет едва отображаться. Вот скриншот проблемы: http://screencast.com/t/ROU61nMSgzy

Вопрос в том, как мне решить эту проблему, чтобы эта проблема не возникала? Примечание. После кэширования страницы эта проблема не возникает.

Вот JS для коробок:

var $j = jQuery.noConflict();

$j(document).ready(function(){
Engine.Initialize();
if( !$j('body').hasClass('index') && !$j('body').hasClass('homepage') ) {
}
});

var Engine = {

Initialize: function() {
    Engine.Homepage_Animation();
},

Homepage_Animation: function() {
    if( !$j.browser.msie ) {
        $j('#homepage-main-item img').hide().fadeIn(700, function(){
            $j(this).css('display', 'block');

            $j('#homepage-boxes .boxes').each(function(i) {
                $j(this).delay(100 * i).animate({
                    opacity: 1
                }, 300);
            });
        });

    } else {
        $j('#homepage-main-item img').css('display', 'block');
        $j('#homepage-boxes .boxes').css('opacity', 1);
    }
},

}

Вот JS для Fancybox.

     <script type="text/javascript" >
     var $j = jQuery.noConflict();
$j(document).ready(function(){
 $j("#start").fancybox({
 'padding' : 0
 });
});
</script>

HTML для Fancybox

    <div class="hide">
    <img src="/Images/skin/spacer1x1.png" onload="$j('#start').trigger('click');" />  
<a href="#welcome" id="start"></a>
    <img id="welcome" usemap="#Map" alt="PLEASE VIEW PAGE WITH IMAGES ON" src="/Images/start/start.png" />
    <map id="Map" name="Map">
    <area alt="See Message Examples" href="/artistphotos/" coords="29,431,301,465" shape="rect" />
    <area alt="Enter Site" href="javascript:$j.fn.fancybox.close();" coords="436,433,567,464" shape="rect" />
    </map>
</div> 

Спасибо за любую помощь =>

1 Ответ

2 голосов
/ 05 августа 2011

Если вы хотите, чтобы fancybox запускался первым, используйте обратный вызов fancybox onComplete:

$j(document).ready(function(){
    $j('#start').fancybox({

        'onComplete': function () {
            Engine.Initialize();
        }

    });
});

в противном случае введите код fancybox после вызова пользовательской функции инициализации:

$j(document).ready(function(){
    Engine.Initialize();

    $j("#start").fancybox({
        'padding' : 0
    });
});
...