在单击时加载循环图像/将图像加载推迟到单击或其他事件

时间:2014-04-23 作者:sheriffderek

我有一个小幻灯片中的一些图像循环(自定义帖子类型)。大约有30个。

当用户点击这个小幻灯片时,它会弹出一个奇特的盒子图库,里面有一圈大图像。

问题是,如果没有人点击幻灯片,我不想加载30幅大图像,尤其是在手机上,因为手机上根本没有这个选项。

对我来说,加载它的最佳方式是什么。php循环的大图像,只有在用户用jQuery单击幻灯片之后?我可以加载简单的html字符串,但在整个PHP块和路由图像路径方面有困难。

我玩过.load().html()

$(\'button\').on(\'click\',  function() {
    $(\'#insertion-point\').load(\'this-WP_query-loop-chunk.php\');
});

1 个回复
SO网友:sheriffderek

因此,我没有像往常一样在单击时加载循环,而是像往常一样加载循环,而是检索图像的URL并将其收集到数据属性中。然后,我已经在循环中使用了它,而没有实际加载图像(真正的问题是谁的体重)。

单击或任何事件-然后我将存储的字符串提供给src 的属性img

这让我的页面负载从14mb增加到了1.2mb。

HTML/PHP任意

// start loop // WP_Query

<div class="slideshow-image"
    <img
    data-image-url="<?php echo wp_get_attachment_url(get_post_thumbnail_id()); ?>"
    src="<?php bloginfo(\'template_directory\'); ?>/images/blank.gif" 
    alt="slideshow image" />
</div>

// end loop

jQuery

// load slideshow image only after you click
$("#porthole-slideshow-link").on(\'click\', function() {

  $(\'.slideshow-image img\').each( function() {

    var imageUrl = $(this).attr("data-image-url");
    $(this).attr(\'src\', imageUrl);

  });

});
更多:我将这一想法付诸于许多不在循环中的事情,因此我只能加载最重要的资产,然后在DOM加载之后,在网站结构完成后,加载社交按钮(在本例中是大按钮)等。

HTML

<img
class="load-me-after-dom"
data-image-url="http://example.com/images/my-huge-image.png"
src="http://example.com/images/blank.gif"
alt="my description" />
jQuery
$(\'.load-me-after-dom\').each( function() {
  var imageUrl = $(this).attr("data-image-url");
  $(this).attr(\'src\', imageUrl);
});

结束

相关推荐

AJAX返回正确的数据,但位于错误的位置

我正在尝试如何在Wordpress中正确使用AJAX:(我在其他网站上使用过,但在WP中没有使用过)我在函数中有这个代码。主题的php:function jquery_stuff() { wp_enqueue_script(\'jquery\'); wp_enqueue_script(\'scriptname\', get_bloginfo(\'template_url\') . \'/wibergsweb.js\'); } add_action( \'in