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 动态加载脚本的4种方法
May 05 Javascript
jquery获取焦点和失去焦点事件代码
Apr 21 Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 Javascript
纯JS实现动态时间显示代码
Feb 08 Javascript
用循环或if语句从json中取数据示例
Aug 18 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
整理一下常见的IE错误
Nov 18 Javascript
jQuery动态生成不规则表格(前后端)
Feb 21 Javascript
JS正则表达式常见用法实例详解
Jun 19 Javascript
VUE实现移动端列表筛选功能
Aug 23 Javascript
Vue前端判断数据对象是否为空的实例
Sep 02 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
Oct 28 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(7) php 字符串相关应用
2010/03/05 PHP
php的字符串用法小结
2010/06/08 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
15 个 JavaScript Web UI 库
2010/05/19 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
VUE中v-model和v-for指令详解
2017/06/23 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
利用Psyco提升Python运行速度
2014/12/24 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
python监控文件并且发送告警邮件
2018/06/21 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
十一个高级MySql面试题
2014/10/06 面试题
小学综治宣传月活动总结
2014/07/02 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
MYSQL常用函数介绍
2022/05/05 MySQL
在python中读取和写入CSV文件详情
2022/06/28 Python