从Tumblr photoset中拉出第一张图片?

时间:2012-02-08 16:31:06

标签: tumblr

我正在为想要使用Tumblr的Photoset功能创建投资组合网站的婚礼摄影师设计一个主题。

如何从照片集中提取第一张图片,以便创建一个主页,其中包含一个链接到每个集合的缩略图预览(根据我的选择大小)?

谢谢, 帕里

3 个答案:

答案 0 :(得分:4)

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; }

答案 1 :(得分:3)

以上示例存在缺陷,因为用户必须下载所有图像,即使只显示第一个图像,所以我使用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>');
    });
});

这确保只加载第一个图像...你可以在noscript标签中使用上面的其他css示例,因为它们已经关闭了javascript。

希望有所帮助

答案 2 :(得分:3)

似乎没有办法限制它们,但你可以注释掉它们。此解决方案的优势在于隐藏的图像根本无法加载它不需要任何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注释,因此循环中的其余图像将位于注释中,不可见。在循环之后,我们使用-->关闭评论。完成后,第一张照片中的所有图像都将被隐藏。