如何在页面加载时启动jQuery Fancybox?

如何在页面加载时启动jQuery Fancybox?,jquery,jquery-plugins,fancybox,Jquery,Jquery Plugins,Fancybox,我想在页面加载时启动Fancybox(例如模式或灯箱的版本)。我可以将它绑定到一个隐藏的锚定标记,并通过JavaScript触发该锚定标记的点击事件,但我更愿意直接启动Fancybox并避免额外的锚定标记。也许你可以使用,它轻量级且易于使用。您可以通过调用 $('.box').jqmShow() Fancybox目前不直接支持自动启动的方式。我所能做的工作是创建一个隐藏的锚标记并触发它的点击事件。确保在包含jQuery和Fancybox JS文件之后包含触发单击事件的调用。我使用的代码如下:

我想在页面加载时启动Fancybox(例如模式或灯箱的版本)。我可以将它绑定到一个隐藏的锚定标记,并通过JavaScript触发该锚定标记的点击事件,但我更愿意直接启动Fancybox并避免额外的锚定标记。

也许你可以使用,它轻量级且易于使用。您可以通过调用

$('.box').jqmShow() 

Fancybox目前不直接支持自动启动的方式。我所能做的工作是创建一个隐藏的锚标记并触发它的点击事件。确保在包含jQuery和Fancybox JS文件之后包含触发单击事件的调用。我使用的代码如下:

此示例脚本直接嵌入到HTML中,但也可以包含在JS文件中

<script type="text/javascript">
    $(document).ready(function() {
        $("#hidden_link").fancybox().trigger('click');
    });
</script>

$(文档).ready(函数(){
$(“#隐藏链接”).fancybox().trigger('click');
});

或在fancybox设置完成后在JS文件中使用:

$('#link_id').trigger('click');

我相信Fancybox 1.2.1在我需要执行此操作时,将使用测试中的其他默认选项。

实际上,我使用“live”事件仅从外部JS文件触发Fancybox链接:

首先,在您未来的动态锚上添加live click事件:

$('a.pub').live('click', function() {
  $(this).fancybox(... fancybox parameters ...);
})
然后,将锚点附加到主体上:

$('body').append('<a class="iframe pub" href="your-url.html"></a>');
fancyBox链接现在“几乎”准备就绪。为什么“几乎”?因为看起来您需要在触发第二次单击之前添加一些延迟,否则脚本还没有准备好

在我们的主播上使用一些动画是一个快速而肮脏的延迟,但效果很好:

$('a.pub').slideDown('fast', function() {
  $('a.pub').click();
});
给你,你的fancyBox应该已经加载了


HTH

也许这会有帮助。。。这是在完整大小的jQuery日历单击事件()中使用的。。。但它可以更广泛地用于处理jQuery启动的fancybox

  eventClick: function(calEvent, jsEvent, view) {
      jQuery("body").after('<a id="link_'+calEvent.url+'" style="display: hidden;" href="http://thisweekinblackness.com/wp-content/uploads/2009/01/steve-urkel.jpg">Steve</a>');
      jQuery('#link_'+calEvent.url).fancybox(); 
      jQuery('#link_'+calEvent.url).click();
      jQuery('#link_'+calEvent.url).remove();
    return false;
  }
event单击:函数(calEvent、jsEvent、view){
jQuery(“正文”)。在(“”)之后;
jQuery('#link'+calEvent.url).fancybox();
jQuery('#link'+calEvent.url);
jQuery('#link'+calEvent.url).remove();
返回false;
}

我通过在document ready中调用此函数实现了这一点:

$(document).ready(function () {
        $.fancybox({
            'width': '40%',
            'height': '40%',
            'autoScale': true,
            'transitionIn': 'fade',
            'transitionOut': 'fade',
            'type': 'iframe',
            'href': 'http://www.example.com'
        });
});

就我的情况而言,以下方法可以成功地工作。加载页面时,灯箱会立即弹出

JQuery:1.4.2

Fancybox:1.3.1

<body onload="$('#aLink').trigger('click');">
<a id="aLink" href="http://www.google.com" >Link</a></body>



$(文档).ready(函数(){
$(“#aLink”).fancybox({
“宽度”:“75%”,
“高度”:75%,
“自动缩放”:false,
“transitionIn”:“无”,
“transitionOut”:“无”,
“type”:“iframe”
});
});

亚历克斯的回答很好。但需要注意的是,这调用了默认的fancybox样式。如果你有自己的自定义规则,你只需要调用。触发器点击那个特定的锚

$(document).ready(function() {
$("#hidden_link").fancybox({ 
    'padding':          0,
    'cyclic':       true,
    'width':        625,
    'height':       350,
    'padding':      0, 
    'margin':      0, 
    'speedIn':      300,
    'speedOut':     300,
    'transitionIn': 'elastic',
    'transitionOut': 'elastic',
    'easingIn':     'swing',
    'easingOut':    'swing',
    'titleShow' : false
}); 
    $("#hidden_link").trigger('click');
});

为什么这还不是答案之一

$("#manual2").click(function() {
    $.fancybox([
        'http://farm5.static.flickr.com/4044/4286199901_33844563eb.jpg',
        'http://farm3.static.flickr.com/2687/4220681515_cc4f42d6b9.jpg',
        {
            'href'  : 'http://farm5.static.flickr.com/4005/4213562882_851e92f326.jpg',
            'title' : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit'
        }
    ], {
        'padding'           : 0,
        'transitionIn'      : 'none',
        'transitionOut'     : 'none',
        'type'              : 'image',
        'changeFade'        : 0
    });
});
现在就触发你的链接


这是从

中得到的,我发现最好的方法是:

<script type="text/javascript">
    $(document).ready(function() {
        $.fancybox(
             $("#WRAPPER_FOR_hidden_div_with_content_to_show").html(), //fancybox works perfect with hidden divs
             {
                  //fancybox options
             }
        );
    });
</script>

$(文档).ready(函数(){
$.fancybox(
$(“#WRAPPER_FOR_hidden_div_with_content_to_show”).html(),//fancybox与隐藏div完美结合
{
//fancybox选项
}
);
});

您还可以使用本机JavaScript函数在DOM就绪后延迟框的显示

<a id="reference-first" href="#reference-first-message">Test the Popup</a>

<div style="display: none;">
    <div id="reference-first-message" style="width:400px;height:100px;overflow:auto;">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Nulla et lorem eu nibh adipiscing ultricies nec at lacus. Cras laoreet ultricies sem, at blandit mi eleifend aliquam. Nunc enim ipsum, vehicula non pretium varius, cursus ac tortor. Vivamus fringilla congue laoreet. Quisque ultrices sodales orci, quis rhoncus justo auctor in. Phasellus dui eros, bibendum eu feugiat ornare, faucibus eu mi. Nunc aliquet tempus sem, id aliquam diam varius ac. Maecenas nisl nunc, molestie vitae eleifend vel, iaculis sed magna. Aenean tempus lacus vitae orci posuere porttitor eget non felis. Donec lectus elit, aliquam nec eleifend sit amet, vestibulum sed nunc.
    </div>
</div>

<script type="text/javascript">
    $(document).ready(function() {
        $("#reference-first").fancybox({
            'titlePosition'         : 'inside',
            'transitionIn'          : 'fade',
            'transitionOut'         : 'fade',
            'overlayColor'          : '#333',
            'overlayOpacity'        : 0.9
        }).trigger("click");

        //launch on load after 5 second delay
        window.setTimeout('$("#reference-first")', 5000);
    });
</script>

Lorem ipsum dolor sit amet,是一位杰出的献身者。这是一种特殊的临时设施。不,我不知道。前庭阻塞前角门。在lacus的其他地方,不存在任何错误。laoreet ultricies扫描电镜,位于blandit mi eleifend aliquam。同侧静脉曲张、非静脉曲张、曲张静脉曲张。弗林吉亚·康吉·劳里特万岁。奥奇之父,奥克斯之父。两个爱神对决,两个仇敌对决,一个敌人对决,一个敌人对决。在扫描电镜下观察,观察直径变化,并对其进行分析,以确定其是否存在。埃涅阿斯·坦普斯是一位非猫科动物。不要选择精英,不要坐在椅子上,前庭也要坐在椅子上。
$(文档).ready(函数(){
$(“#参考优先”).fancybox({
“标题位置”:“内部”,
“transitionIn”:“fade”,
“transitionOut”:“fade”,
“套色”:“333”,
“产能过剩”:0.9
}).触发(“点击”);
//延迟5秒后加载启动
setTimeout(“$”(“#先引用”)”,5000);
});
Window.load(与document.ready()相反)似乎是在以下情况下使用的技巧:


请记住,您可能在别处使用document.ready(),IE9会对这两个文件的加载顺序感到不安。这给您留下了两个选项:将所有内容更改为window.load或使用setTimer()。

您可以这样放置链接(它将被隐藏。可能在
之前)

只需使用jquery触发器函数即可

$( window ).load(function() {
  $("#clickbanner").trigger('click');
});
很简单:

先将元素隐藏起来,如下所示:

<div id="hidden" style="display:none;">
    Hi this is hidden
</div>

嗨,这是隐藏的
然后调用您的javascript:

<script type="text/javascript">
    $(document).ready(function() {
        $.fancybox("#hidden");
    });
</script>

$(文档).ready(函数(){
$.fancybox(“隐藏”);
});
查看下图:

另一个例子:

<div id="example2" style="display:none;">
        <img src="http://theinstitute.ieee.org/img/07tiProductsandServicesiStockphoto-1311258460873.jpg" />
    </div>

 <script type="text/javascript">
        $(document).ready(function() {
            $.fancybox("#example2");
        });
    </script>

$(文档).ready(函数(){
$.fancybox(“示例2”);
});

以防您没有按钮可点击。我的意思是,如果您想在ajax响应上打开它,那么它将是这样的:

$.fancybox({
      href: '#ID',
      padding   : 23,
      maxWidth  : 690,
      maxHeight : 345
});
$(文档).ready(函数(){
$.fancybox(
“是的,它能工作”,
{
“自动标注”:false,
“宽度”:400,
‘高度’:200,
“transitionIn”:“无”,
“transitionOut”:“无”
}
);
});
$( window ).load(function() {
  $("#clickbanner").trigger('click');
});
<div id="hidden" style="display:none;">
    Hi this is hidden
</div>
<script type="text/javascript">
    $(document).ready(function() {
        $.fancybox("#hidden");
    });
</script>
<div id="example2" style="display:none;">
        <img src="http://theinstitute.ieee.org/img/07tiProductsandServicesiStockphoto-1311258460873.jpg" />
    </div>

 <script type="text/javascript">
        $(document).ready(function() {
            $.fancybox("#example2");
        });
    </script>
$.fancybox({
      href: '#ID',
      padding   : 23,
      maxWidth  : 690,
      maxHeight : 345
});
$(document).ready(function() {
    $.fancybox(
      '<p>Yes. It works <p>',
       {
        'autoDimensions'    : false,
        'width'             : 400,
        'height'            : 200,
        'transitionIn'      : 'none',
        'transitionOut'     : 'none'
       }
    );
});
<a id="hidden_link" href="LinkToImage"></a>
<script type="text/javascript">
    $(document).ready(function() {
        $("#hidden_link").fancybox().trigger('click');
    });
</script>
<a href="foo.jpg" data-fancybox="gallery">Click me</a>
https://example.org/slideshow.php#gallery-1