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 相关文章推荐
用Jquery实现多级下拉框无刷新的联动
Dec 22 Javascript
动态的创建一个元素createElement及删除一个元素
Jan 24 Javascript
jquery动态改变div宽度和高度
Feb 09 Javascript
JS扩展方法实例分析
Apr 15 Javascript
理解JavaScript的变量的入门教程
Jul 07 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
May 25 Javascript
微信小程序 封装http请求实例详解
Jan 16 Javascript
Vue 表单控件绑定的实现示例
Aug 11 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
Oct 19 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
Jan 22 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
Nov 01 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中文本操作的类
2007/03/17 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
探究Laravel使用env函数读取环境变量为null的问题
2016/12/06 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
vue登录注册实例详解
2019/09/14 Javascript
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
分享vim python缩进等一些配置
2018/07/02 Python
用Python配平化学方程式的方法
2019/07/20 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Python如何使用bokeh包和geojson数据绘制地图
2020/03/21 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
祖国在我心中演讲稿
2014/01/15 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL