H5首屏图片加载优化
背景
当h5的首屏为一张整图的时候,图片又比较大,加载起来比较慢。
一般常用的方法是将图片无损压缩 常用的压缩网站,缺点 就是压缩后的图 如果在网络较差的情况下,加载也会有一定的延迟,如果网络更加不稳定,会导致白屏的时间较长,影响用户体验。
第二种方式 如同Medium的实现方案,首先利用一个缩略图来代替原图,提高用户体验。效果如下:
流程
页面加载------展示缩略图 并设置为模糊 — 同时下载原图— 加载完原图以后替换缩略图 --关闭模糊效果
代码
const imgDiv = new Image()imgDiv.onload=()=>{const imgDiv = document.getElementsById("img")imgDiv.style.filter = 'none'imgDiv.style.webkitFilter = 'none'imgDiv.style.backgroundImage = 'url("../img.png")'}imgDiv.src = '../img.png' //img 为清晰图
.img{background-image: url('../css/AddImg.png'); //AddImg 为缩略图background-size:cover;filter:blur(4px);transition: filter 0.5s ease;
}
如果 图片用img 标签引入 原理相同
可以利用img的onload时间handleImageLoad() 知道图片是什么时候加载完成的
分为以下几步:
- 在原图的位置贴一张同样大小的容器
- 在容器内加载一张缩略图,设置模糊效果
- 同时请求加载原图
- 原图下载完成以后隐藏掉缩略图,露出原来图片,可以设置一个动画 提高用户体验
// 图片加载完成function ImgLoad(){const imgDiv = document.getElementById("img-div")imgDiv.style .opacity = 0}<div id='img-div'><img src='img1'></img><img src='img2' onload="ImgLoad"></img></div>//css#img-div{position: relative;width: 200px;height: 200px;}.img1{position: absolute;filter: blur(4px);transition: opacity 0.3s ease;}
H5首屏图片加载优化相关推荐
- 歪门邪道之解决首屏图片加载闪烁问题
前情描述: 最近接到一个首页图片加载优化的任务,图片是展示在首页RecyclerView中.问题现象是即使有缓存,图片的展示还是会肉眼可见的跳变,没法做到一打开首页,图片就展示在那. 问题定位: Re ...
- 微信小程序-首屏视频加载
项目场景: 微信小程序开发: 实现小程序首页视频预加载功能 1.获取设备的宽和高度 2.小程序video的使用 获取设备的宽和高度 // 获取设备的宽和高度getsize() {let that = ...
- 前端图片加载优化的各种技巧
目前的前端图片加载优化技术有很多,像懒加载/预加载,img上的srcset属性以及picture标签,新的图片编码格式以及Client Hints等. Client Hints 顾名思义,client ...
- 前端页面图片加载优化
前端页面图片加载优化 问题:前端页面如果图片资源过多或者过大就会导致用户加载图片时间过长,导致用户体验下降 我总结的优化思路与方法有以下几种 一.将图标换成icon字体管理 如果项目存在大量的图表用的 ...
- 图片加载优化,拒绝OOM
2019独角兽企业重金招聘Python工程师标准>>> 最近做了个资讯类的app项目,涉及到大量的图片加载,因公司项目框架已经集成了Glide用于加载图片,理所当然就直接用了Glid ...
- Android图片加载优化方案
1. 前言 在电商APP中,图片在整个页面中占比最大,清晰高质量的图片能够明显提升转化率.但是APP运行环境错综复杂,往往我们会遇到 图片压缩导致模糊.列表加载长时间显示空白图.查看大图黑屏过久.甚至 ...
- 网页图片加载优化方法总结
目录 1.压缩 2.直接一开始用压缩过的体积小的图,等加载完毕后,再用高清无码图来替换掉 3.使用base64编码代替图片 4.更好的图片格式 5.合并图片sprite(雪碧图) 6.使用css.sv ...
- Android图片加载优化
一.高效加载大图片 我们在编写Android程序的时候经常要用到许多图片,不同图片总是会有不同的形状.不同的大小,但在大多数情况下,这些图片都会大于我们程序所需要的大小.比如说系统图片库里展示的图片大 ...
- Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)
列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...
最新文章
- pytorch垃圾分类
- 医院信息化建设历程(5)互联互通的数字化医院阶段
- 实战绕过宝塔PHP disable_function 限制getshell
- python爬取国内代理ip_Python语言爬取代理IP
- ASP.NET Core 自动刷新JWT Token
- html颜色叠加代码,html代码大全(基础使用代码)(颜色代码完整版)
- Splay初步【bzoj1503】
- LeetCode 2048. 下一个更大的数值平衡数(枚举)
- F#学习:类型的定义和使用语法
- 手动绘制方向梯度直方图(HOG)
- .net core 定时任务
- coreldraw x4如何重叠图片_怎么用CDR x4(coreldraw x4)裁剪图片?x4怎么自动抠图
- openpyxl 向excel插入超链接
- 成都 软件 功能测试,成都软件项目验收测试 功能符合性测试 科技项目验收测试报告...
- 安卓手机查看已经连接的WIFI密码
- 单片机输入和输出模式简要说明
- python——正则表达式(re模块)详解
- 用U盘安装系统完全教程
- 怎么用显卡计算_显卡性能的软件 3dmark怎么用
- 北大扫地僧“火”了!手提馒头矿泉水的他,是博士毕业1年就成北大助理教授的90后!...
热门文章
- The bean ‘XXX‘ could not be injected because it is a JDK dynamic proxy
- easyexcel 字体加粗
- 线程的故事(了解线程生命周期)
- 提取动漫视频里的BGM
- 从零开始的纪中生活(7.11~7.22)
- SpringBoot的优点
- Python创建免费Ip代理池,伪装Ip。
- IAR编译出现Error[Pe147]: declaration is incompatible with “__interwork __vfp int dir_get_dout()“ 报错
- 计算机游戏动漫制作自我鉴定,动画制作专业毕业生的自我鉴定范文(精选5篇)...
- 「macOS无法验证此APP不包含恶意软件」的处理方式