如何从特定<;img src=>;并放入<;a href=>;用于Lightbox


How to get URL from specific <img src=> and put into <a href=> for use with Lightbox

我已经为其他人建立了一个网站,他们将通过CMS(CushyCMS)进行更新。他们想要一个灯箱画廊。我希望能够允许他们上传一个新的图像,并将该图像的url复制到标签中,这样lightbox就可以工作了。

到目前为止,我可以做到这一点,但客户端必须确保文件名和格式与我在php代码中设置的完全相同。有没有一种方法可以从img标签中获取img url(可能使用id属性来识别它)并将其直接放入标签中?

以下是我目前所拥有的:

 <?php
 $src1 = "images/test1.jpg"; 
 $src2 = "images/test2.jpg"; 
 ?>  
<a href="<?php echo $src1?>" data-lightbox="group-1">
<img class="cushycms profile" name="image1" id="slideshow_image" src="images/test1.jpg"/></a>
<a href="<?php echo $src2?>" data-lightbox="group-1">  
<img class="cushycms profile" id="slideshow_image" src="images/test2.jpg"/></a>

非常感谢!

您可以使用jQuery:

<a data-lightbox="group-1">
    <img name="image1" src="images/test1.jpg" />
</a>
<script>
var img = $('img[name="image1"]');
var imgSrc = img.attr('src');
img.parent().attr('href', imgSrc);
</script>

如果你有多个图像,并想自动化这一点,你可以使用地图功能:

<a data-lightbox="group-1">
    <img name="image1" src="images/test1.jpg" class="slideshow" />
</a>
<a data-lightbox="group-1">
    <img name="image2" src="images/test2.jpg" class="slideshow" />
</a>
<a data-lightbox="group-1">
    <img name="image3" src="images/test3.jpg" class="slideshow" />
</a>
<script>
$(".slideshow").map(function() {
    $(this).parent().attr('href', this.src);
});
</script>

假设你在某个地方使用jQuery,你可以/应该使用一个灯箱插件,比如这里的

http://www.jacklmoore.com/colorbox/

使用那里的示例,您可以使用:(http://www.jacklmoore.com/colorbox/example1/)

$('a.gallery').colorbox({rel:'group-1'});

这将导致lighbox库在"点击"时显示在类为"gallery"的任何锚点上,而库将显示类为"group-1"的所有锚点中由"href"指向的所有元素(因此每个锚点

尽管你必须包含一些jquery和lightbox插件的文件,但我认为这最终会让你的生活变得更轻松。

也不确定你的php级别是什么,但你的示例代码要求:

<?php 
$images = array(
'images/test1.jpg',
'images/test2.jpg'
);
?>
<?php foreach($images as $i => $url): ?>
<a href="<?php echo $url?>" data-lightbox="group-1">
<img class="cushycms profile" name="image<?php echo $i+1 ?>" id="slideshow_image" src="<?php echo $url ?>"/>
</a>
<?php endforeach; ?>

以防你在那里看到更多的照片。