【问题标题】:Open all images on page with magnific popup使用放大的弹出窗口打开页面上的所有图像
【发布时间】:2018-03-06 13:13:33
【问题描述】:

我想在我的页面上的所有图像上启用放大弹出窗口。我不想更改 DOM(用 documentation 中建议的锚点围绕我的图像标签)。

我的 DOM 类似于

<div id="content">
  <img src="img/mw1.png" class="figure-img img-fluid">
  <img src="img/mw2.png" class="figure-img img-fluid">
  <img src="img/mw3.png" class="figure-img img-fluid">
</div>

还有我的 JS:

var $imgs = [];
$('img').each(function(idx) {
  var obj = {
    src: $(this).attr('src')
  }
  $imgs.push(obj);
  var elem = $(this);
  $(this).click(function() {
    console.log('clicked on img', idx);
    $('#content').magnificPopup('open', idx);
  });
});

$('#content').magnificPopup({
  items: $imgs,
  type: 'image',
  gallery: {
    enabled: true
  },
});

https://www.codeply.com/go/A2yRWr4bDi 无论我单击哪个图像,总是会打开第一个图像。我想要它完全一样,只是点击的图像首先打开。

【问题讨论】:

    标签: jquery magnific-popup


    【解决方案1】:

    magnific-popup 代码中似乎有一个错误,它永远不会传递该索引。

    在 v1.1.0 jquery.magnific-popup.js 中,第 931 行(取消),添加:

    itemOpts.index = index;  // add this line
    mfp._openClick({mfpEl:items}, jqEl, itemOpts);  <-- before this line
    

    它会正常工作。

    但是,这意味着您需要该文件的本地副本并自己(本地)对其进行最小化,直到作者可以更新为止。

    【讨论】:

    • 哇。你是真正的侦探!但是我想知道我是否是第一个遇到这个问题的人。
    猜你喜欢
    • 2021-07-28
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    相关资源
    最近更新 更多