【问题标题】:Javascript/Fancybox Error?Javascript/Fancybox 错误?
【发布时间】:2011-08-04 02:20:52
【问题描述】:

在我的页面上,我在主图像下方有 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);
    }
},

}

这是 Fancybox 的 JS。

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

Fancybox 的 HTML

    <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> 

感谢您的帮助 =>

【问题讨论】:

    标签: javascript jquery jquery-plugins fancybox


    【解决方案1】:

    如果你想让fancybox先运行,使用fancybox onComplete回调:

    $j(document).ready(function(){
        $j('#start').fancybox({
    
            'onComplete': function () {
                Engine.Initialize();
            }
    
        });
    });
    

    否则,请在调用您的自定义 init 函数后放入 fancybox 代码:

    $j(document).ready(function(){
        Engine.Initialize();
    
        $j("#start").fancybox({
            'padding' : 0
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 2020-03-09
      • 2011-09-29
      • 1970-01-01
      • 2012-11-02
      • 2013-05-11
      • 1970-01-01
      相关资源
      最近更新 更多