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 相关文章推荐
js jquery数组介绍
Jul 15 Javascript
JS网页在线获取鼠标坐标值的方法
Feb 28 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
Mar 04 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
整理Javascript基础语法学习笔记
Nov 29 Javascript
JavaScript中文件上传API详解
Apr 01 Javascript
jquery DataTable实现前后台动态分页
Jun 17 jQuery
React学习笔记之事件处理(二)
Jul 02 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
Jan 22 Javascript
vue实现点击关注后及时更新列表功能
Jun 26 Javascript
小程序云开发部署攻略(图文教程)
Oct 30 Javascript
Vue源码解析之数组变异的实现
Dec 04 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完整的日历类(CLASS)
2006/11/27 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
再JavaScript的jQuery库中编写动画效果的指南
2015/08/13 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
第一次记录Bootstrap table学习笔记(1)
2017/05/18 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中多线程及程序锁浅析
2015/01/21 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
python生成IP段的方法
2015/07/07 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
详解django三种文件下载方式
2018/04/06 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python中bytes和str类型的区别
2019/10/21 Python
python如何编写win程序
2020/06/08 Python
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
创业计划书撰写原则
2014/01/25 职场文书
重阳节登山活动方案
2014/02/03 职场文书
房地产开盘策划方案
2014/02/10 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
java实现对Hadoop的操作
2021/07/01 Java/Android
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android