shwanYu
shwanYu
  • 发布:2016-10-07 07:36
  • 更新:2020-06-19 15:19
  • 阅读:11471

大白话解释如何使用DCloud的图片延迟加载(懒加载、lazyload)

分类:MUI

像我这样的“百度流”、“社区流”小白,从乱翻资料到成功使用DC的每一个功能,都是一个痛苦的过程。
事实上,DC提供了优秀且易用的lazyload机制。不仅可以在app使用,也可以在web开发过程中使用。其还具有一个特别的优点:在tab滑动页面状态为隐藏时,自动启用lazyload机制,切换为显示时才载入真实图片,大大节省流量。

经试验,只要满足以下几点,就能跑起来:

约定:{$tplRoot}表示模板所在路径,应按照实际情况修改。chrome 下用F12键进入调试,不报404为准。

一、在所需页面,成功引入以下三个js。

<script type="text/javascript" src="{$tplRoot}/mui/js/mui.min.js"></script>  
<script type="text/javascript" src="{$tplRoot}/mui/js/mui.lazyload.js"></script>  
<script type="text/javascript" src="{$tplRoot}/mui/js/mui.lazyload.img.js"></script>

为保证ui效果,建议引入以下CSS

<link rel="stylesheet" href="{$tplRoot}/mui/css/mui.min.css">

二、html结构
不论是用js动态生成,还是用其他方法生成html,都要按照以下规范:

<div id="img-content-app">  
  <div class="rich_media_content">  
    <!--其他html-->  
    <img data-lazyload="图片实际地址" src="临时占位图片地址">  
    <!--其他html-->  
  </div>  
</div>

注:测试时内容至少搞成三四屏以上,一屏当然启动不了lazyload。

三、在body区域加入以下JS代码

<script type="text/javascript" charset="utf-8">  
    var list = document.getElementById("img-content-app");//表示需要实施lazyload的div区域,指定其id。  
    var lazyLoadApi = mui('#img-content-app .rich_media_content').imageLazyload({//.rich_media_content指定lazyload实施区域的div class  
        autoDestroy: false,  
        placeholder: '{$tplRoot}/images/60x60.gif'//在js里指定临时占位图片,需自行准备并指定正确的本地路径或远程路径  
    });  
    mui.init();  

// ...other script...  

</script>

解释:
一、可以看到,html里的div之id、class与js里应该写成一致。具体写成什么,并不重要。但###必须要对应###。
二、需要lazy区域里的图片一定要有data-lazyload。

示例:https://app.lijiangtv.com/index.php?s=/addon/AppManage/Client/index/aid/1660

7 关注 分享
lhyh Trust 4***@qq.com 帝普一世 4***@qq.com 英年早肥 l***@126.com

要回复文章请先登录注册

风云杭州

风云杭州

nvue ,swiper 包含的image ,能用你这个办法吗
2020-06-19 15:19
2***@qq.com

2***@qq.com

回复 1***@qq.com :
解决了没 uniapp的图片懒加载
2019-09-05 08:12
1***@qq.com

1***@qq.com

可以用在uniapp吗
2019-07-30 00:44
白天的黑

白天的黑

为什么我的html引入了三个js,按顺序引入的,使用了data-lazyload,使用了js代码,使用了src,但是只显示src的提示图片,和引入vue有冲突吗,我是在html里引入了vue使用了的
2019-03-12 16:28
1***@qq.com

1***@qq.com

这个怎么设置图片的载入效果 比如说淡入
2019-03-06 15:21
k***@msn.com

k***@msn.com

非常感谢
2018-03-09 07:13
哆啦哆啦

哆啦哆啦

mark~
2017-05-03 11:29
shwanYu

shwanYu (作者)

回复 7***@qq.com :
确实是个问题
2016-11-15 22:50
7***@qq.com

7***@qq.com

但是怎么和滚动监听一起使用呢,有没有人研究过呢
2016-11-10 09:43
1***@qq.com

1***@qq.com

非常棒,有效。
2016-10-17 15:11