【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();
},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/441223.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现在我有三个代码块,分别都调用了同一个接口使用相同的数据,请问怎么精简代码,让他只调用一次接口,将数据存储起来让其他函数共同使用.

问题描述: 现在我有三个代码块: 一: const getData async () > {console.log(触发了getData接口)let resultData await getActivityInfo(activityId);console.log(resultData,resultData)let id resultData.id;let shareImg resultData.shareImglet shareSubtitle res…

JWT(JSON Web Token)详解以及在go-zero中配置的方法

目的 对用户进行身份认证和信息交换 RFC 7519 传统方式 通过session保存对话信息&#xff0c;服务端返回一个session id&#xff0c;用户保存这个id在cookie内&#xff0c;然后每次请求都传给服务端 局限性 对于服务器集群难以向每个服务器共享同一session jwt的方式是…

备战蓝桥杯---数据结构与STL应用(基础实战篇1)

话不多说&#xff0c;直接上题&#xff1a; 当然我们可以用队列&#xff0c;但是其插入复杂度为N,总的复杂度为n^2,肯定会超时&#xff0c;于是我们可以用链表来写&#xff0c;同时把其存在数组中&#xff0c;这样节点的访问复杂度也为o(1).下面是AC代码&#xff1a; 下面我们来…

学习MySQL仅此一篇就够了(视图)

视图 介绍及基本语法 视图&#xff08;View&#xff09;是一种虚拟存在的表。视图中的数据并不在数据库中实际存在&#xff0c;行和列数据来自定义视 图的查询中使用的表&#xff0c;并且是在使用视图时动态生成的。 通俗的讲&#xff0c;视图只保存了查询的SQL逻辑&#xf…

我在代码随想录|写代码Day20之二叉树-700. 二叉搜索树中的搜索,98. 验证二叉搜索树,530.二叉搜索树的最小绝对差

学习目标&#xff1a; 博主介绍: 27dCnc 专题 : 数据结构帮助小白快速入门 &#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d; ☆*: .&#xff61;. o(≧▽≦)…

TypeScript(八) number和string

1. TypeScript number 1.1. 描述 Number对象是原始数值的包装对象。 1.2.语法 var num new Number(value);;注意&#xff1a;如果一个参数值不能转换为一个数字&#xff0c;将返回NaN&#xff08;非数字值&#xff09;。 1.3. 对象属性 属性描述MAX_VALUE可表示的最大的数…

深度学习-搭建Colab环境

Google Colab(Colaboratory) 是一个免费的云端环境&#xff0c;旨在帮助开发者和研究人员轻松进行机器学习和数据科学工作。它提供了许多优势&#xff0c;使得编写、执行和共享代码变得更加简单和高效。Colab 在云端提供了预配置的环境&#xff0c;可以直接开始编写代码&#x…

【CMU-自主导航与规划】Autonomous Exploration Development Environment 配置与运行

官方文档&#xff1a;https://www.cmu-exploration.com/ 一、安装与配置&#xff1a; 适用版本&#xff1a; Ubuntu 18.04 ROS Melodic and Ubuntu 20.04 with ROS Noetic. 如果使用 Ubuntu 22.04 with ROS2 Humble, 则需要配置ROS2【https://drive.google.com/file/d/1a01RS…

鸿蒙新风口,湖南码牛助你高薪起飞!

去年9月底&#xff0c;在华为秋季全场景新品发布会上&#xff0c;华为常务董事、终端BG CEO余承东宣布&#xff0c;鸿蒙原生应用全面启动&#xff0c;HarmonyOS NEXT开发者预览版将在2024年第一季度开放。 HarmonyOS 2019年正式面世&#xff0c;至今已成长了4年&#xff0c;截至…

86.网游逆向分析与插件开发-物品使用-物品丢弃的逆向分析与C++代码的封装

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;物品使用的逆向分析与C代码的封装-CSDN博客 码云地址&#xff08;ui显示角色数据 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;7563f86877c…

2023年春秋杯网络安全联赛冬季赛_做题记录

可信计算 基于挑战码的双向认证1 可信计算赛题-双向认证挑战模式.docx 使用命令进行SSH登录上去 ssh player8.147.131.156 -p 18341 # 记得加上-p参数指定端口&#xff0c;不然默认的是22端口看见word文档的提示&#xff0c;先尝试一下 直接获得了flag1 web 魔术方…

基于视觉的移载协作机器人机床上下料末端纠偏算法

摘 要 针对复合机器人在机床上下料中的定位方法,本文主要关注识别机床卡盘和末端作业面的定位。首先分 析了复合机器人在机床上下料过程中的工作原理及其基本结构,包括 AGV (自动导引车)和协作机器人 的功能及特点。然后,详细阐述了如何使用视觉系统和纠偏算法来…