至尊技术网 - 图片懒加载 2019-09-18T13:33:00+08:00 Typecho https://www.zzwws.cn/feed/atom/tag/%E5%9B%BE%E7%89%87%E6%87%92%E5%8A%A0%E8%BD%BD/ <![CDATA[Typecho实现图片懒加载(lazyload)]]> https://www.zzwws.cn/archives/1128/ 2019-09-18T13:33:00+08:00 2019-09-18T13:33:00+08:00 悠悠楠杉 http://www.zzwws.cn 基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载。

对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度。

注意事项:
需要真正实现图片延迟加载,必须将真实图片地址写在 data-original 属性中。若 src 与 data-original 相同,则只是一个特效而已,并不达到延迟加载的功能。

1、修改 HTML 代码中需要延迟加载的 img 标签

<img class="lazy" src="img/loading.gif" data-original="example.jpg">
// 或者
<img class="lazy" data-original="example.jpg">

Typecho在主题文件 index.php 找到:

<img src="<?php echo articleThumb($this);?>" alt="<?php $this->title(); ?>">

替换:

<img class="lazy" src="<?php $this->options->themeUrl('images/loading.gif'); ?>" data-original="<?php echo articleThumb($this);?>" alt="<?php $this->title(); ?>">

2、在主题文件 footer.php 的 标签前添加如下代码:

这里主要是引入jquery.js和jquery.lazyload.js,并初始化lazyload的图片显示样式。
注意:因主题自带jquery.js,故这里未做引入!占位符图片请替换为你的gif图片地址。

<!--引入jquery.lazyload.js-->
<script src="https://cdn.bootcss.com/jquery_lazyload/1.9.7/jquery.lazyload.min.js"></script>
<script>
    //js出始化lazyload并设置图片显示方式
    $(function() {$("img.lazy").lazyload({effect: "fadeIn", threshold: 200});});
    //pjax开启后的pjax回调
    $(document).on('pjax:complete', function() {
            $("img.lazy").lazyload({
            effect: "fadeIn",
            threshold: 200
        });
    });
</script>
]]>