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

vue实现简易的全局加载动画效果

效果展示

123412341234123412341234

思路

封装一个组件,放Img,伪类样式,固定在屏幕fixed

然后App应用这个组件,Z index拉最大,防止用户在加载动画时乱点,

v-show绑定loading,该数据可以放vuex还是任一的公共状态管理变量区域

然后增加vue自带的transition过渡动画,类样式控制过渡时间

代码

组件代码

<template><!--组件的结构--><transition name="fade" class="fade-enter-active fade-leave-active"><div class="loading-bg"><div class="loading-img"></div><div class="loading-image-dot"></div></div></transition>
</template>
<script>
//组件交互相关的代码(数据、方法等等)
export default {name: 'pageLoading',data() {return {}},methods: {},
}
</script><style>
.loading-bg {width: 100%;height: 100%;position: fixed;display: flex;justify-content: center;align-items: center;z-index: 100000;background: #CFF6F7EA;transition: all 0.3s ;opacity: 1;
}.loading-img {width: 100px;height: 100px;background: url('https://cdn.zww0891.fun/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20240701112347.jpg') center center;background-size: cover;border-radius: 50%;border: 4px solid #f0f0f2;animation: loadingAction infinite ease 0.7s;
}.loading-image-dot:before {content: '';position: absolute;background: #6bdf8f;border: 4px solid #f0f0f2;border-radius: 50%;width: 30px;height: 30px;top: 50%;left: 50%;transform: translateX(20px) translateY(20px);
}
.fade-enter-active{transition: opacity 1.2s;
}
.fade-leave-active{transition: opacity 2s;
}.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {opacity: 0;
}@keyframes loadingAction {0% {opacity: 1;/*-ms-filter: none;*//*filter: none;*/}100% {opacity: 0.4;}
}/*@keyframes blink {*/
/*    0% {*/
/*        opacity: 0.4;*/
/*    }*/
/*    50% {*/
/*        opacity: 1;*/
/*    }*/
/*    100%{*/
/*        opacity: 0.4;*/
/*    }*/
/*}*/</style>

应用代码

image-20240802170015279

这里我放在了app起到全局覆盖的作用,同时绑定vuex的值

发送请求时commit修改loading值,可以设置加载时长,这里我设置了500ms

image-20240802170138428

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2.回文数
  • Python使用内置logging模块打印日志
  • 主动学习实现领域自适应语义分割
  • 某次活动优惠券故障复盘及优化建议
  • JVM生态创新
  • Redis 数据结构深度解析:跳跃表(Skiplist)
  • vscode安装与配置本地c/c++编译调试环境
  • 详解Xilinx FPGA高速串行收发器GTX/GTP(2)--什么是GTX?
  • 【传知代码】LAD-GNN标签注意蒸馏(论文复现)
  • 研究表明产品越强调AI越招人们反感:降低情感信任 减少购买意愿
  • sftp做成一个池子
  • 区块链如何助力数字版权保护和内容创作者的权益?
  • linux nicstat
  • Linux 照片图像编辑器
  • 土木工程学报
  • 分享一款快速APP功能测试工具
  • 【Leetcode】104. 二叉树的最大深度
  • Angularjs之国际化
  • co.js - 让异步代码同步化
  • co模块的前端实现
  • Docker下部署自己的LNMP工作环境
  • ES6--对象的扩展
  • FastReport在线报表设计器工作原理
  • gops —— Go 程序诊断分析工具
  • GraphQL学习过程应该是这样的
  • Java 内存分配及垃圾回收机制初探
  • Java教程_软件开发基础
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Mysql5.6主从复制
  • nfs客户端进程变D,延伸linux的lock
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • React Transition Group -- Transition 组件
  • 闭包,sync使用细节
  • 翻译:Hystrix - How To Use
  • 关于springcloud Gateway中的限流
  • 规范化安全开发 KOA 手脚架
  • 类orAPI - 收藏集 - 掘金
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 微信支付JSAPI,实测!终极方案
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 用element的upload组件实现多图片上传和压缩
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​iOS实时查看App运行日志
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #### go map 底层结构 ####
  • #if等命令的学习
  • #nginx配置案例
  • #pragma 指令
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #每日一题合集#牛客JZ23-JZ33
  • ${factoryList }后面有空格不影响