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 45种缓动效果 非常酷
Jun 28 Javascript
浅析js设置控件的readonly与enabled属性问题
Dec 25 Javascript
给应用部分的js代码设定一个统一的入口
Jun 15 Javascript
微信小程序 获取微信OpenId详解及实例代码
Oct 31 Javascript
jQuery获取table下某一行某一列的值实现代码
Apr 07 jQuery
微信小程序Redux绑定实例详解
Jun 07 Javascript
vue axios用法教程详解
Jul 23 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
vue-cli创建的项目中的gitHooks原理解析
Feb 14 Javascript
JavaScript接口实现方法实例分析
May 16 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/12/14 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
javascript 二进制运算技巧解析
2012/11/27 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
jQuery中eq()方法用法实例
2015/01/05 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
[03:02]生活中的Dendi之野外度假篇
2016/08/09 DOTA
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Django添加sitemap的方法示例
2018/08/06 Python
pycham查看程序执行的时间方法
2018/11/29 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
python3 字符串知识点学习笔记
2020/02/08 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
预备党员思想汇报范文
2013/12/29 职场文书
运动会跳远广播稿
2014/02/04 职场文书
四风问题自查报告剖析材料
2014/02/08 职场文书
聚美优品的广告词
2014/03/14 职场文书
和解协议书
2014/04/16 职场文书
质量提升方案
2014/06/16 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python
Pytorch 实现变量类型转换
2021/05/17 Python