【问题标题】:prevent images being loaded until click防止图像被加载,直到点击
【发布时间】:2020-09-23 09:51:30
【问题描述】:

我目前有一个图像和文本列表,我们有大约 1000 张图像,因此页面加载速度很慢。

我有一个隐藏和显示功能,仅在使用 js slice 方法单击时才加载接下来的三个。

我的图像是从 wp php 循环加载的,由于服务器限制,我无法使用 Ajax,有没有一种简单的方法可以在用户单击按钮之前不加载图像?

问题

我的问题是如何防止加载所有图像,直到用户单击按钮以显示接下来的 3 张图像 我试过了

$(".secondary-card").each(function() {
        var obj = $(this);
        obj.data("objsrc", obj.attr("data-src"));
        obj.hide().attr("data-src", "").before("<span class=\"loading\">loading . . .</span>");
    });

但我的页面似乎并没有快多少

这是我当前加载下 3 张图片的代码

const cards = $('.card-deck')
let clicks = 3;

if (cards.length > 3) {
    cards.hide();
    cards.slice(0, 3).show();
}
$('.show-more').on('click', function() {
    clicks = clicks + 3;
    if (clicks > cards.length) {
        clicks = cards.length
    }
    cards.slice(0, clicks).fadeIn();
});

【问题讨论】:

  • 你试过使用原生loading=lazy吗?认为它更适合 SEO 和 js 拦截器
  • 当前使用apoorv.pro/lozad.js
  • 尝试在使用任何名称调用的函数中使用您的逻辑,并仅在点击事件时触发它。
  • 你能展示一下你的 php 代码是如何创建卡片的吗?
  • 只是基本的 wordpress 循环

标签: javascript php jquery wordpress slice


【解决方案1】:

以下是您可以继续使用的方法:

$(.cards-desk).hide();
$('.show-more').on('click', function() {
  $(.cards-desk).append("You images html code");
  $(".cards-desk").show()
});

【讨论】:

  • 问题在这里我的图像 html 是一个 php 循环
  • 然后分页分两种使用>后端或前端
  • 不使用分页,想要全部在一个页面上并且或多或少地显示没有ajax
猜你喜欢
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多