从 Tumblr 照片集中提取第一张图像?

发布于 2025-01-03 07:22:20 字数 139 浏览 1 评论 0原文

我正在为一位婚礼摄影师设计一个主题,他想要使用 Tumblr 的 Photoset 功能创建一个作品集网站。

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

谢谢, 帕里

I'm designing a theme for a wedding photographer who wants to use Tumblr's Photoset functionality to create a portfolio site.

How do I pull the first image from a photoset so I can create a home page with a single thumbnail preview (sized to my choosing) that links to each set?

Thanks,
Parri

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

满身野味 2025-01-10 07:22:20

似乎没有办法限制它们,但您可以将它们注释掉。此解决方案的优点是根本不会加载隐藏图像并且不需要任何 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}

请参阅 关闭注释。完成后,照片集中第一张图像之后的所有图像都将被隐藏。

There doesn't seem to be a way to limit them, but you can comment them out. This solution has the advantage that the hidden images won't be loaded at all and it doesn't need any 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}

See that <!-- before {/block:Photos}? That opens an HTML comment right after the first image, so the rest of the images in the loop will be in a comment, invisible. After the loop we close the comment with -->. Done, all the images in the photoset after the first one will be hidden.

可可 2025-01-10 07:22:20

Tumblr 标记:

{block:Photoset}
    <div class="photoset-wrap">
    {block:Photos}
        <img src="{PhotoURL-500}" />
    {/block:Photos}
    </div>
{/block:Photoset}

注意:您可能需要 {PhotoURL-75sq} 来输出方形预览而不是 500 像素图像;

CSS:

.photoset-wrap img { display: none; }
.photoset-wrap img:first-child { display: block; }

Tumblr markup:

{block:Photoset}
    <div class="photoset-wrap">
    {block:Photos}
        <img src="{PhotoURL-500}" />
    {/block:Photos}
    </div>
{/block:Photoset}

Note: may be you need {PhotoURL-75sq} to output square preview instead of 500px image;

CSS:

.photoset-wrap img { display: none; }
.photoset-wrap img:first-child { display: block; }
救星 2025-01-10 07:22:20

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

这确保仅加载第一个图像...您始终可以将上面的其他 css 示例放在 noscript 标记中,以防它们关闭了 javascript。

希望有帮助

the above example is flawed as the user has to download all the images even though only the first is shown so instead I've used jquery to inject only the first image.

HTML (simplified):

{block:Photoset}
    <div class="photoset">
        {block:Photos}
            <div class="photoPlaceholder" imgsrc="{PhotoURL-500}"></div>
        {/block:Photos}
    </div>
{block:Photoset}

javascript (simplified):

$(document).ready(function() {
    $(".photoset .photoPlaceholder").first().each(function (i) {
        var src = $(this).attr("imgsrc");
        $(this).html('<a href="#"><img src="'+ src +'" /></a>');
    });
});

This ensures only the first image is loaded... you can always have the other css example above in a noscript tag incase they have javascript turned off.

Hope that helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文