1.背景介绍

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

2.现状

现在加载照片的方法主要有一下两种:

(1)最原始的方式在html页面直接用img标签加载显示照片。该方法在网络速度比较慢或者要显示的照片比较大的时候会页面出现空白的等待过程,并且不能开始给用户看到照片大概的情况,用户体验比较不好

(2)在html页面先用img标签加载显示照片的缩略图,同时用javascript隐藏的加载照片的原图,等照片大图加载完成后再将原图显示到页面中。以下是流程图:

3.我们的解决方案

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

(1)示例图

如上如所示,本方法的处理步骤是:

1).获取照片缩略图和原图的URL,获取照片的长和宽;

2).加载并显示照片缩略图,将缩略图按照片的长和宽拉伸显示,这时用户看到的是模糊的效果;

3).加载并显示照片原图,将原图叠加在缩略图上面显示,原图加载多少就显示多少,没有加载的还是显示缩略图,逐步将缩略图覆盖掉,原图在加载的过程中用户看到的是照片从模糊到清晰的渐变效果。

4).原图加载完后,原图已经全部将缩略图覆盖,这时用户看到的是真实的原图。此时可以隐藏缩略图防止缩略图干扰PNG或GIF等有透明效果的图片显示。

(2)示例代码

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

js实现图片虚化_Javascript实现图片加载从模糊到清晰显示的方法相关推荐

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

    1.通过代码控制 QQ相册最近做的一些优化方法解决了上诉两个方法的缺点和满足了用户查看照片的需求:第一时间看到照片大概情况和尽可能快的看到清晰的原图.该方法使用缩略图和原图同时加载并叠加显示,先加载缩 ...

  2. 图片加载由模糊变清晰-图片优化

    开发过程中,一些图片的展示时,加载很慢很久,后来把图片缩放压成缩略图吧,速度是快了但是模糊不清,如何处理这样问题,下面就和大家分享一下自己的处理方法. 先让客户端加载像素小的缩略图: <img ...

  3. 实现图片加载先模糊后清晰的效果

    打开一些网上的相册, 在加载照片的时候, 如果网速比较慢加载慢的话, 它会先显示一个类似模糊有点小马赛克的质量比较差的照片, 然后慢慢的变为清晰的照片, 这样避免了用户在浏览照片的时候页面一片空白的情 ...

  4. js实现点击图片放大效果,以及懒加载图片

    js实现点击图片放大效果,以及懒加载图片 近期有个后端管理页面小优化,原来的图片是点击才会去后端请求图片展示到前端,用dialog的方式展示,但是不太直观 存在两个问题 1.点击查看后,电子照片会变形 ...

  5. 一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载?

    一个页面上有大量的图片,加载很慢,你有哪些方法优化这些图片的加载? 1.使用 Sprites 图片技术 它将一个页面涉及到的所有零星图片都包含到一张大图中去,然后利用 CSS 技术展现出来.这样一来, ...

  6. 一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。

    一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验. 图片懒加载,滚动到相应位置才加载图片. 图片预加载,如果为幻灯片.相册等,将当前展示图片的前一张和 ...

  7. htmlimg图片加载失败_html网页图片未加载完成或失败时显示默认图片

    前言 一般一个内容多的网站相对会有比较多的图片文件,但是同时加载这些图片文件或加载失败时会出现空白占位,影响美观,通过脚本控制,可以实现加载需求内容图片时,加载未完成或失败的时候显示一张本地默认图片, ...

  8. js如何使浏览器允许脚本异步加载

    js如何使浏览器允许脚本异步加载 如果脚本体积很大,下载和执行的时间就会很长,因此造成浏览器堵塞,用户会感觉到浏览器"卡死"了,没有任何响应.这显然是很不好的体验,所以浏览器允许脚 ...

  9. JS动态加载脚本及对动态脚本内方法的调用

    JS动态加载脚本及对动态脚本内方法的调用 摘要 JS动态加载脚本及对动态脚本内方法的调用 JS 动态 添加脚本 按需加载 首先我们需要一个被加载的js文件,我在一个固定文件夹下创建了一个package ...

最新文章

  1. Office 365系列(3)------Office 365认证使用ADFS安装部署参考
  2. IDEA打包成可执行的JAR包
  3. 新项目新工作空间新仓库新setting文件
  4. C语言求最大公约数GCD的算法(附完整源码)
  5. MDT2010部署之二配置MDT2010
  6. 你画的流程图,全组人都能看得懂吗?
  7. OpenShift - 用CodeReady开发云原生应用(1)- 将可执行Quarkus应用部署到OpenShift
  8. 帆软报表使用及设置日志打印sql
  9. spring MVC 及 AOP 原理
  10. The Gradient Operator
  11. 常用开发资源整理(更新日:2017/4/26)
  12. linux内核分析及应用 -- Linux 网络层数据流分析(上)
  13. nero burning rom 2021绿色版安装及使用教程
  14. Android接入热敏打印机
  15. 云和恩墨大讲堂西安站成功举办,携手合作伙伴引领企业数字化转型
  16. python爬取b站_python3 爬取B站视频弹幕
  17. webgl漫反射公式物理原理猜测
  18. echarts散点图使用(转:http://www.suchso.com/UIweb/echarts-sandiantu.html)
  19. Matlab数字图像处理学习记录【1】——准备与基本原理
  20. 计算机组装前工具的准备,计算机组装 必备工具

热门文章

  1. gitHub里面的README.MD编辑器的使用手册
  2. Java随机生成6位正整数
  3. 《Linux驱动:s3c2440 lcd 驱动分析》
  4. redis事务处理:(error) EXECABORT Transaction discarded because of previous errors.
  5. 35岁怎么就成了“被嫌弃一族”
  6. 时空趋势理论 --- 超越时空的均线技术(转载 )
  7. text-align:center设置居中不起作用
  8. @Page指令中的AutoEventWireup
  9. 华为matebook13笔记本 右侧type-c接口 没反应,失灵 ,失效,不通电,无法识别usb设备,设备管理器Unknown usb device
  10. esxi虚拟山闪存修改