我目前正在使用带有灯箱的网站。 (Featherlight

现在的问题是,灯箱仅加载第一张图片,即使我单击另一张图片,它仍然显示第一张图片。

You can try it yourself over here

我使用的代码是

<div class="grid-sizer"></div>
    <?php if($page->numChildren(true)) {
        echo "<ul class='project'>";
        foreach($page->children as $child) {

            if ($child->head_image) {
                $image = $child->head_image;
                echo "<li class='item'><a href='#' data-featherlight='#mylightbox'><img id='mylightbox' src='{$image->url}' class='image'></a><p class='worktitle'>$child->title</p></li>";
                                }}

                echo "</ul>";}
        ?>
    </div>


该站点在ProcessWire上运行,我进行了这样的设置



希尔德林根


作品1(这里只有一件作品,附有信息)
工作2(等)
工作3

特宁根


工作1
工作2
工作3



因此,没有必要向左或向右移动,只需弹出一个图像即可。

有人知道如何解决此问题吗?每个图像都能工作。

提前致谢!

最佳答案

我不确定Featherlight库的工作原理如何,但是它可能与HTML ID有关。每个ID只能使用一次,但是您要为foreach中的每个图像复制ID“ mylightbox”。

尝试将foreach更改为以下内容:

foreach($page->children as $childIndex => $child) {
  if ($child->head_image) {
    $image = $child->head_image;
    echo "<li class='item'><a href='#' data-featherlight='#mylightbox" . $childIndex . "'><img id='mylightbox" . $childIndex . "' src='{$image->url}' class='image'></a><p class='worktitle'>$child->title</p></li>";
  }
}

09-20 00:57