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 相关文章推荐
JavaScript Undefined,Null类型和NaN值区别
Oct 22 Javascript
jquery tools之tooltip
Jul 25 Javascript
javascript针对DOM的应用实例(一)
Apr 15 Javascript
利用js实现遮罩以及弹出可移动登录窗口
Jul 08 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
实例代码讲解jquery easyui动态tab页
Nov 17 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
js获取浏览器的各种属性
Apr 27 Javascript
js禁止表单重复提交
Aug 29 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
Sep 03 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
Sep 18 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
一个简洁的多级别论坛
2006/10/09 PHP
特转载一高手总结PHP学习资源和链接.
2006/12/05 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
PHP时间格式控制符对照表分享
2013/07/23 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
PHP发送短信代码分享
2015/08/11 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
vue 虚拟DOM的原理
2020/10/03 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
flask中的wtforms使用方法
2018/07/21 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
茶叶生产计划书
2014/01/10 职场文书
道路建设实施方案
2014/03/18 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
机房搬迁方案
2014/05/01 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
迎新生晚会主持词
2015/06/30 职场文书