Photoswipe 在混合内容博客文章中调用Photosweep

Photoswipe 在混合内容博客文章中调用Photosweep,photoswipe,Photoswipe,我在包含混合内容的博客文章上使用Photosweep,比如图像,但也包含文本、视频等,而不是只包含图像的单独图库。在整个帖子上执行Photosweep似乎不仅仅适用于元素,所以我希望更具体一点。我只想在元素上调用Photosweep,但我对如何做到这一点有点不知所措 我认为这里的主要思想是这个变量: var thumbElements = el.childNodes …应该更具体一些。所以我需要这样的东西来工作: var allElements = el.childNodes, thu

我在包含混合内容的博客文章上使用Photosweep,比如图像,但也包含文本、视频等,而不是只包含图像的单独图库。在整个帖子上执行Photosweep似乎不仅仅适用于元素,所以我希望更具体一点。我只想在元素上调用Photosweep,但我对如何做到这一点有点不知所措

我认为这里的主要思想是这个变量:

var thumbElements = el.childNodes
…应该更具体一些。所以我需要这样的东西来工作:

var allElements = el.childNodes,
    thumbElements = allElements.getElementsByTagName("figure");
但那不起作用。在代码的后面部分中,分别定义了地物元素:

figureEl = thumbElements[i]; // <figure> element

所以我有点迷路了。。。非常感谢您的帮助。

好的,我终于自己动手了。对于其他可能遇到这种情况的人,这里有一个更好的解释,说明我需要做什么,我在这里的最初问题中有点含糊不清,以及我是如何让它工作的

在文档中,Photosweep提供了如何在图库中实现它的建议,请参阅如何从图库上的链接列表构建幻灯片阵列一节 这个实现假设的是,您的图库只是一个图像集合。然而,我在我所有的博客帖子上都使用Photoswip,这些博客帖子由混合内容组成,包括段落、视频等等

提供的实现代码不允许这种开箱即用的方式,所以我做了两个小的调整以使其工作

我改变了这一点:

        // include only element nodes 
        if(figureEl.nodeType !== 1) {
            continue;
        }
进入这个

        // include only elements of the FIGURE name
        if(figureEl.nodeName !== 'FIGURE') {
            continue;
        }
根据这个概念,这个:

        if(childNodes[i].nodeType !== 1) { 
            continue; 
        }
为此:

        if(childNodes[i].nodeName !== 'FIGURE') {    
            continue; 
        }

现在,Photosweep并不是应用于所有元素节点,而是仅应用于更具体地属于FIGURE元素类型的子节点:

好的,最后我自己实现了。对于其他可能遇到这种情况的人,这里有一个更好的解释,说明我需要做什么,我在这里的最初问题中有点含糊不清,以及我是如何让它工作的

在文档中,Photosweep提供了如何在图库中实现它的建议,请参阅如何从图库上的链接列表构建幻灯片阵列一节 这个实现假设的是,您的图库只是一个图像集合。然而,我在我所有的博客帖子上都使用Photoswip,这些博客帖子由混合内容组成,包括段落、视频等等

提供的实现代码不允许这种开箱即用的方式,所以我做了两个小的调整以使其工作

我改变了这一点:

        // include only element nodes 
        if(figureEl.nodeType !== 1) {
            continue;
        }
进入这个

        // include only elements of the FIGURE name
        if(figureEl.nodeName !== 'FIGURE') {
            continue;
        }
根据这个概念,这个:

        if(childNodes[i].nodeType !== 1) { 
            continue; 
        }
为此:

        if(childNodes[i].nodeName !== 'FIGURE') {    
            continue; 
        }

现在,Photosweep并不是应用于所有元素节点,而是仅应用于更具体的图形元素类型的子节点:

感谢您在发现自己之后发布了答案–可能为我节省了不少时间!谢谢你在发现自己之后发布了答案-可能为我节省了不少时间!