JS实现图片延迟加载并淡入淡出效果的简单方法


Posted in Javascript onAugust 25, 2016

话不多说,直接看示例

首先是图片标记的写法

<img data-src="/images/image.jpg" alt="">

需要将图片的地址放到 data-src 属性里,而src值不需要,直接将src属性去掉。

CSS代码

所有具有data-src属性的图片,我们将其初始显示状态为不可见,通过透明度来调节:

img {
 opacity: 1;
 transition: opacity 0.3s;
}

img[data-src] {
 opacity: 0;
}

这样写的作用是什么?等当图片加载时,你就能看的效果了。

JavaScript代码

我们最终会将 data-src 属性去掉,换成src属性,但这是图片加载成功后的动作:

[].forEach.call(document.querySelectorAll('img[data-src]'), function(img) {
 img.setAttribute('src', img.getAttribute('data-src'));
 img.onload = function() {
 img.removeAttribute('data-src');
 };
});

相比起其它各种的图片延迟加载技术,这种方法非常的简单,它几乎不要求其它任何条件,可以用在任何地方,使用起来非常灵活。

但是要注意的是,简单有简单的好坏,也会因为简单而不足。它不具有图片图片滚动到可视窗口内再加载的功能。最终使用哪种技术,还是要看场景而定。

以上就是本文的全部内容,希望对大家的工作和学习能有所帮助。

Javascript 相关文章推荐
[JSF]使用DataModel处理表行事件的实例代码
Aug 05 Javascript
JS匀速运动演示示例代码
Nov 26 Javascript
jquery实现背景墙聚光灯效果示例分享
Mar 02 Javascript
高性能JavaScript模板引擎实现原理详解
Feb 05 Javascript
jQuery移动web开发中的页面初始化与加载事件
Dec 03 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
Dec 27 Javascript
js遍历json的key和value的实例
Jan 22 Javascript
微信小程序 获取二维码实例详解
Jun 23 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 Javascript
原生js实现form表单序列化的方法
Aug 02 Javascript
websocket4.0+typescript 实现热更新的方法
Aug 14 Javascript
js实现移动端吸顶效果
Jan 08 Javascript
JavaScript中闭包之浅析解读(必看篇)
Aug 25 #Javascript
jquery点击切换背景色的简单实例
Aug 25 #Javascript
浅析Javascript ES6中的原生Promise
Aug 25 #Javascript
微信JS接口大全
Aug 25 #Javascript
JS解决iframe之间通信和自适应高度的问题
Aug 24 #Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 #Javascript
js图片上传前预览功能(兼容所有浏览器)
Aug 24 #Javascript
You might like
PHP:风雨欲来 路在何方?
2006/10/09 PHP
php简单实现sql防注入的方法
2016/04/22 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
js 火狐下取本地路径实现思路
2013/04/02 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
简单谈谈JS中的正则表达式
2017/09/11 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
vue实现评论列表功能
2019/10/25 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
更改Python命令行交互提示符的方法
2015/01/14 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
Python3 集合set入门基础
2020/02/10 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
毕业生求职的求职信
2013/12/05 职场文书
母亲七十大寿答谢词
2014/01/18 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
学生请假条
2014/04/11 职场文书
条幅标语大全
2014/06/20 职场文书
摘录式读书笔记
2015/07/01 职场文书
什么是SOLID
2022/03/24 Javascript