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 相关文章推荐
直接生成打开窗口代码,不必下载
May 14 Javascript
JavaScript中的变量声明早于赋值分析
Mar 01 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
May 24 Javascript
js常用数组操作方法简明总结
Jun 20 Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 Javascript
JavaScript中实现Map的示例代码
Sep 09 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
Jul 13 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
Aug 27 Javascript
利用JQuery直接调用asp.net后台的简单方法
Oct 27 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
Vue.js 踩坑记之双向绑定
May 03 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 curl模拟post请求小实例
2013/11/13 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
javascript 函数调用的对象和方法
2010/07/01 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
mui上拉加载更多下拉刷新数据的封装过程
2017/11/03 Javascript
three.js中文文档学习之创建场景
2017/11/20 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
Python 通过pip安装Django详细介绍
2017/04/28 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Python正则表达式指南 推荐
2018/10/09 Python
python实现差分隐私Laplace机制详解
2019/11/25 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Python 字符串池化的前提
2020/07/03 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
市场营销战略计划书
2014/05/06 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
摄影展策划方案
2014/06/02 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
论文答谢词
2015/01/20 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
在校证明模板
2015/06/17 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
js基础语法与maven项目配置教程案例
2021/07/15 Javascript