我正在为一位婚礼摄影师设计主题,他想使用Tumblr的Photoset功能创建一个作品集网站。
我该如何从Photoset中提取第一张图片,以便创建一个主页,其中包含一个缩略图预览(大小由我选择),并链接到每个作品集?
谢谢, Parri
我该如何从Photoset中提取第一张图片,以便创建一个主页,其中包含一个缩略图预览(大小由我选择),并链接到每个作品集?
谢谢, Parri
似乎没有办法限制它们,但是您可以将它们注释掉。这种解决方案的优点是隐藏的图像根本不会被加载,也不需要任何 JavaScript。
{block:Photoset}
<!-- Go through each Photo in the Photoset -->
{block:Photos}
<img src="{PhotoURL-HighRes}" class="highres">
<!--
{/block:Photos}
-->
{block:Caption}
<p>{Caption}</p>
{/block:Caption}
{/block:Photoset}
注意在{/block:Photos}
之前有一个<!--
吗? 这打开了第一张图片后面的HTML注释,所以循环中的其余图片将被隐藏在注释中无法显示。 循环结束后,我们使用-->
关闭注释。 完成,相册中第一张图片后的所有图片都将被隐藏。
以上示例存在缺陷,因为用户必须下载所有图像,即使只显示第一个图像,所以我使用了jQuery仅注入第一个图像。
HTML(简化版):
{block:Photoset}
<div class="photoset">
{block:Photos}
<div class="photoPlaceholder" imgsrc="{PhotoURL-500}"></div>
{/block:Photos}
</div>
{block:Photoset}
Javascript(简化版):
$(document).ready(function() {
$(".photoset .photoPlaceholder").first().each(function (i) {
var src = $(this).attr("imgsrc");
$(this).html('<a href="#"><img src="'+ src +'" /></a>');
});
});
这样可以确保只加载第一张图片...如果他们关闭了JavaScript,您始终可以在noscript标签中包含上面的其他CSS示例。
希望这有所帮助。
Tumblr标记语言:
{block:Photoset}
<div class="photoset-wrap">
{block:Photos}
<img src="{PhotoURL-500}" />
{/block:Photos}
</div>
{/block:Photoset}
注意: 你可能需要使用{PhotoURL-75sq}
来输出正方形预览图,而不是500px的图像;
CSS:
.photoset-wrap img { display: none; }
.photoset-wrap img:first-child { display: block; }
{block:Photos}
{/block:Photos}
<a/>
标签是被接受的(因为链接中只有一个元素),但对于照片集则不是。 - Vladimir Starkov