javascript - Magnific Popup - 从第二个数组项开始画廊

标签 javascript jquery ajax popup

我想了解如何修改 Magnific Popup 代码来控制创建的图像数组,而不是从项目 0(画廊的第一张图像)而是从项目 1(画廊的第二张图像)开始画廊。我需要对图库中的逻辑做一些小改动。当前的行为是当从图库中单击其中一个缩略图时,弹出窗口图库将启动并单击缩略图的图像。我需要从该数组中加载图库中的下一张图像。说吧。我有一个包含 4 张图片的画廊。缩略图是图库中的第一张图片。单击时,我需要从图库中加载第二张图片。非常感谢任何帮助!提前谢谢你。

这是函数代码。

function lightbox() {
        $('.lightbox').magnificPopup({
            delegate: 'a',
            type: 'image',
            gallery:{
                enabled:true,
                arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"><img src="img/assets/slider-left-thin-arrow.png"></button>',
            },
            mainClass: 'mfp-zoom-in',
            removalDelay: 500, //delay removal to allow out-animation
            callbacks: {
                beforeOpen: function() {
                    this.st.image.markup = this.st.image.markup.replace('mfp-figure', 'mfp-figure mfp-with-anim');
                }
            },     
            closeMarkup: '<button title="%title%" type="button" class="mfp-close"></button>',
            midClick: true
        });
    }

最佳答案

使用beforeOpen回调,获取实例并在实例上调用next()

callbacks: {
  beforeOpen: function() {
    var mfp = $.magnificPopup.instance; // instance of magnificPopup
    mfp.next();
  }
}

更新:如果不应该显示第一项,则不需要 next(),只需将它从 items 数组中拼接出来,索引就可以了

callbacks: {
    beforeOpen: function() {
      var mfp = $.magnificPopup.instance; // instance of magnificPopup    
      mfp.items.splice(0, 1);
      mfp.updateItemHTML();
    }
}

关于javascript - Magnific Popup - 从第二个数组项开始画廊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39568010/

相关文章:

javascript - forEach 不起作用,但 map 起作用

javascript - 构建 Electron 应用程序

javascript - Google 脚本 - 调用 API - 错误对象

jquery 删除 (div) 中的 id

javascript - AngularJS - 动态添加表行中的所有值

javascript - 无法将元素附加到 FormData

javascript - 根据同一表行中输入框的最高值查找元素

javascript - 这个表达式在 JavaScript 中起什么作用?

javascript - 使用 PHP(Codeigniter) 将变量从 Controller 传递到 javascript

javascript - JQuery从ajax加载中获取元素id数据