当前位置: 首页 > news >正文

【vue】图片加载骨架

一、前言

在网速较低或者网站的服务器宽带只有几MB的情况下,网页中的图片加载时,要么空白,要么像打印机一样一行一行地“扫描”出来,为了提升用户体验,可以给图片标签外加一层骨架。

无骨架
有骨架

 二、详细设计

每张图片都要配一张它的低分辨率图片,可以在photoshop中完成。建议加上一个高斯模糊。这个图片用作骨架的底图,它的大小只有30k左右,页面很快就能加载好。

 这是没加骨架的html

<div class="box"><img src="@/assets/load1.jpg">
</div>

加骨架后

<div class="box blur-load" :class="{loaded:isLoaded}" :style="{backgroundImage: 'url(' + require('@/assets/loading1.jpg') + ')'}"><img src="@/assets/load1.jpg">
</div>

blur-load是骨架样式,loaded是控制图片是否显示,后面的style是加载刚刚说的底图。

这是blur-load的css

.blur-load{background-size: cover;background-position: center;background-repeat: no-repeat;
}
.blur-load::before{content: '';position: absolute;inset: 0;animation: pulse 2.5s infinite ease-in-out;background-color: rgba(255,255,255,0.3);
}
@keyframes pulse {0%{background-color: rgba(255,255,255,0.3);}50%{background-color: rgba(255,255,255,0);}100%{background-color: rgba(255, 255, 255, 0.3);}
}
.blur-load>img{opacity: 0;
}
.blur-load.loaded>img{opacity: 1;transition: opacity 0.5s ease-in-out;
}

图片加载好后显示图片

image_load(){let img = new Image();img.src = require('@/assets/load2.png');img.onload = ()=>{this.isLoaded = true;}
}

在生命周期mounted中调用该方法

mounted(){this.image_load();
},

相关文章:

  • 如何做好一份全面的市场调查报告?
  • 2024年数学建模美赛 分析与编程
  • USB-C显示器:未来显示技术的革新者
  • 【Docker】linux、nginx、容器镜像三者基本概念
  • Windows系统安装OpenSSH+VS Code结合内网穿透实现远程开发
  • 【论文阅读】Long-Tailed Recognition via Weight Balancing(CVPR2022)附MaxNorm的代码
  • Android Handler完全解读
  • C语言 | 求最大/小值小技巧:fmax、fmin函数
  • 正则表达式 文本三剑客
  • 2024 年, Web 前端开发趋势
  • JAVA项目扩展-多数据库连接(实现一个简单的数据库jdbc连接池)
  • 第十章 单调栈part02(● 503.下一个更大元素II ● 42. 接雨水 )
  • R语言学习case7:ggplot基础画图(核密度图)
  • Google Chrome RCE漏洞 CVE-2020-6507 和 CVE-2024-0517 流程分析
  • CSS Transition详解:优雅实现动画效果的利器
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【技术性】Search知识
  • Android 控件背景颜色处理
  • Java小白进阶笔记(3)-初级面向对象
  • Meteor的表单提交:Form
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Protobuf3语言指南
  • Spring Cloud中负载均衡器概览
  • 翻译--Thinking in React
  • 关于extract.autodesk.io的一些说明
  • 你不可错过的前端面试题(一)
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 十年未变!安全,谁之责?(下)
  • 数据仓库的几种建模方法
  • 微服务核心架构梳理
  • 微服务入门【系列视频课程】
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 新书推荐|Windows黑客编程技术详解
  • 一个项目push到多个远程Git仓库
  • 函数计算新功能-----支持C#函数
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • (12)Linux 常见的三种进程状态
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (备忘)Java Map 遍历
  • (待修改)PyG安装步骤
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (简单) HDU 2612 Find a way,BFS。
  • (五)IO流之ByteArrayInput/OutputStream
  • (转载)深入super,看Python如何解决钻石继承难题
  • *2 echo、printf、mkdir命令的应用
  • .net Stream篇(六)
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NetCore项目nginx发布
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [C#] 我的log4net使用手册