1

我现在只是在看fancybox v2。

我试图让一个画廊用fancybox加载,但需要手动调用。我不希望通过 jquery 加载图库图像,最好让它们从 html 页面加载,因为这将被添加到 CMS 的模板中,该模板需要让用户将图像添加到将填充他们上传的每张新图片。

是否像在开始之前在选项中添加调用一样简单,或者在图像的 a 标签的 href 中添加调用?

谢谢,马克

4

2 回答 2

10

确保所有新加载的图像在链接到它们的锚点内共享相同class和属性rel

<a href="image01.jpg" class="fancybox" rel="gallery" ...

div如果您愿意,这些 html 锚点可以隐藏在其中。您可以查看此帖子以供参考。

然后,将它们绑定到fancybox

$(".fancybox").fancybox();

您说您将使用 CMS,因此如果href您加载的图像的格式类似于 http://path/to/image/?abc=123(例如没有图像扩展名),请将type:"image"选项添加到您的脚本

$(".fancybox").fancybox({
 type:"image"
});

如果锚点可见,单击其中任何一个都将启动图库。

另一方面,您可以使用任何其他链接“手动”启动图库

<a href="javascript:;" id="launcher">open gallery</a>

并添加此脚本:

$("#launcher").on("click", function(){
 $(".fancybox").eq(0).trigger("click");
});

.eq()方法用于从第一个项目(可以是任何项目)开始画廊,否则画廊将从最后一个附加项目开始。此外,该.on()方法需要 jQuery v1.7+

于 2012-05-31T17:11:21.073 回答
5

如果您想/必须使用较旧的 jQuery 版本(例如,由于 Drupal 模块),请摆脱.on()并使用

< a href="javascript:;" id="launcher">LINK TO TOPEN GALLERY< /a>

jQuery(document).ready(function($) {
    $("#launcher").click(function() {
        $(".imagefield-fancybox").eq(0).trigger("click");
    });
});

反而。

也适用于较旧的 jQuery 版本。将“.imagefield-fancybox”替换为您正在使用的类。

于 2012-11-15T18:36:29.043 回答