逃不开的宿命
Typecho实现图片懒加载(lazyload)
09/18
基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载。
对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度。
注意事项:
需要真正实现图片延迟加载,必须将真实图片地址写在 data-original 属性中。若 src 与 data-original 相同,则只是一个特效而已,并不达到延迟加载的功能。
1、修改 HTML 代码中需要延迟加载的 img 标签
<img class="lazy" src="img/loading.gif" 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 的 </body> 标签前添加如下代码:
这里主要是引入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>