Javascript实现图片加载从模糊到清晰显示的方法


Posted in Javascript onJune 21, 2016

1.背景介绍

在网络相册应用中用户查看照片是最朴素的需求,当网络比较慢的时候查看照片等待的时间是比较长的,用户体验会很差。

2.现状

现在加载照片的方法主要有一下两种:
(1)最原始的方式在html页面直接用img标签加载显示照片。该方法在网络速度比较慢或者要显示的照片比较大的时候会页面出现空白的等待过程,并且不能开始给用户看到照片大概的情况,用户体验比较不好
(2)在html页面先用img标签加载显示照片的缩略图,同时用javascript隐藏的加载照片的原图,等照片大图加载完成后再将原图显示到页面中。以下是流程图:

Javascript实现图片加载从模糊到清晰显示的方法

3.我们的解决方案

QQ相册最近做的一些优化方法解决了上诉两个方法的缺点和满足了用户查看照片的需求:第一时间看到照片大概情况和尽可能快的看到清晰的原图。该方法使用缩略图和原图同时加载并叠加显示,先加载缩略图并拉大显示,大图叠加在缩略图上面同时加载。缩略图很小通常很快就能给用户看到照片模糊的效果,大图加载过程中从上往下逐步覆盖缩略图,这样用户就可以看到加载过程中的大图。

(1)示例图

Javascript实现图片加载从模糊到清晰显示的方法

如上如所示,本方法的处理步骤是:
1).获取照片缩略图和原图的URL,获取照片的长和宽;
2).加载并显示照片缩略图,将缩略图按照片的长和宽拉伸显示,这时用户看到的是模糊的效果;
3).加载并显示照片原图,将原图叠加在缩略图上面显示,原图加载多少就显示多少,没有加载的还是显示缩略图,逐步将缩略图覆盖掉,原图在加载的过程中用户看到的是照片从模糊到清晰的渐变效果。
4).原图加载完后,原图已经全部将缩略图覆盖,这时用户看到的是真实的原图。此时可以隐藏缩略图防止缩略图干扰PNG或GIF等有透明效果的图片显示。

(2)示例代码

<!--设置照片的大小-->
<div style="width:400px;height:300px;">
    <!--小图拉大显示-->
    <img src="small_url" style="width:100%;height:100%;"/>
    <!--原图叠加在小图上面-->
    <img src="big_url" style="width:100%;height:100%;position:absolute;top:0px;left:0px;"/>
</div>

以上就是本文的全部内容,了解更多JavaScript的语法,大家可以查看:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 强制弹出窗口代码研究-又一款代码
Mar 20 Javascript
jQuery选择器全面总结
Jan 06 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
Jun 23 Javascript
深入学习jQuery Validate表单验证(二)
Jan 18 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
Jul 11 Javascript
jQuery实现按比例缩放图片的方法
Apr 29 jQuery
对node.js中render和send的用法详解
May 14 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
Nov 12 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
Apr 25 Javascript
教你如何用Node实现API的转发(某音乐)
Sep 20 Javascript
解决layui的radio属性或别的属性没显示出来的问题
Sep 26 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
Apr 11 Javascript
Javascript类型系统之String字符串类型详解
Jun 21 #Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
Jun 21 #Javascript
JS实现简单的右下角弹出提示窗口完整实例
Jun 21 #Javascript
jQuery获取元素父节点的方法
Jun 21 #Javascript
JS图片定时翻滚效果实现方法
Jun 21 #Javascript
Javascript删除指定元素节点的方法
Jun 21 #Javascript
jQuery插件扩展测试实例
Jun 21 #Javascript
You might like
php 用sock技术发送邮件的函数
2007/07/21 PHP
PHP zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
在elementui中Notification组件添加点击事件实例
2020/11/11 Javascript
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
电气工程及其自动化专业毕业生自荐信
2014/06/21 职场文书
2015年元旦标语大全
2014/12/09 职场文书
高中教师个人总结
2015/02/10 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
联谊会开场白
2015/06/01 职场文书
大学班干部竞选稿
2015/11/20 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
导游词之西安骊山
2019/12/20 职场文书