【问题标题】:How do I open fancybox via manual call for a gallery in the html not via the jquery options?如何通过手动调用 html 中的画廊而不是通过 jquery 选项打开fancybox?
【发布时间】:2012-05-31 14:44:06
【问题描述】:

我现在只是在看fancybox v2。

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

是否像在启动前在选项中添加调用一样简单,还是在图像的 a 标签的 href 中添加调用?

谢谢, 标记

【问题讨论】:

    标签: jquery fancybox manual


    【解决方案1】:

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

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

    如果您愿意,这些 html 锚点可以隐藏在 div 中。可以check this post参考。

    然后,将它们绑定到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+

    【讨论】:

      【解决方案2】:

      如果您想/必须使用旧的 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”替换为您正在使用的类。

      【讨论】:

      • .on() 方法需要 jQuery v1.7+,对于较低版本的 jQuery,请使用 .click()
      猜你喜欢
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多