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 学习笔记 选择器之四
Jul 23 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 Javascript
javascript表单验证和Window详解
Dec 11 Javascript
JavaScript中的值类型详细介绍
Dec 29 Javascript
Svg.js实例教程及使用手册详解(一)
May 16 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
jQuery实现动态添加tr到table的方法
Dec 26 Javascript
关于axios返回空对象的问题解决
Apr 04 Javascript
老生常谈js数据类型
Aug 03 Javascript
JavaScript数组push方法使用注意事项
Oct 30 Javascript
JavaScript实现的开关灯泡点击切换特效示例
Jul 08 Javascript
vue实现简单全选和反选功能
Sep 15 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
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
php header功能的使用
2013/10/28 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
javascript 写类方式之二
2009/07/05 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
一组SQL面试题
2016/02/15 面试题
单位创先争优活动方案
2014/01/26 职场文书
房地产项目策划书
2014/02/05 职场文书
培训协议书范本
2014/04/22 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
服务标语大全
2014/06/18 职场文书
低碳环保演讲稿
2014/08/28 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
2014年材料员工作总结
2014/11/19 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
劳动仲裁调解书
2015/05/20 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL