Vue2.x 首屏添加loading效果
Vue项目首屏加载添加Loading效果, 在Vue实例未初始化之前 loading效果展示 初始化完成之后loading效果消失
1. HTML代码
在 app 里面添加以下代码
<div id="app">
<!-- loading --> <div id="loading-mask"> <div class="loading-wrapper"> <span class="loading-dot loading-dot-spin"> <i></i><i></i><i></i><i></i> </span> </div> </div>
</div>
2. CSS代码
<style> #loading-mask { position: fixed; left: 0; top: 0; height: 100%; width: 100%; background: #fff; user-select: none; z-index: 9999; overflow: hidden; } .loading-wrapper { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -100%); } .loading-dot { animation: antRotate 1.2s infinite linear; transform: rotate(45deg); position: relative; display: inline-block; font-size: 64px; width: 64px; height: 64px; box-sizing: border-box; } .loading-dot i { width: 22px; height: 22px; position: absolute; display: block; background-color: #1890ff; border-radius: 100%; transform: scale(0.75); transform-origin: 50% 50%; opacity: 0.3; animation: antSpinMove 1s infinite linear alternate; } .loading-dot i:nth-child(1) { top: 0; left: 0; } .loading-dot i:nth-child(2) { top: 0; right: 0; -webkit-animation-delay: 0.4s; animation-delay: 0.4s; } .loading-dot i:nth-child(3) { right: 0; bottom: 0; -webkit-animation-delay: 0.8s; animation-delay: 0.8s; } .loading-dot i:nth-child(4) { bottom: 0; left: 0; -webkit-animation-delay: 1.2s; animation-delay: 1.2s; } @keyframes antRotate { to { -webkit-transform: rotate(405deg); transform: rotate(405deg); } } @-webkit-keyframes antRotate { to { -webkit-transform: rotate(405deg); transform: rotate(405deg); } } @keyframes antSpinMove { to { opacity: 1; } } @-webkit-keyframes antSpinMove { to { opacity: 1; } } </style>
全部代码
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width,initial-scale=1.0" /> <style> #loading-mask { position: fixed; left: 0; top: 0; height: 100%; width: 100%; background: #fff; user-select: none; z-index: 9999; overflow: hidden; } .loading-wrapper { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -100%); } .loading-dot { animation: antRotate 1.2s infinite linear; transform: rotate(45deg); position: relative; display: inline-block; font-size: 64px; width: 64px; height: 64px; box-sizing: border-box; } .loading-dot i { width: 22px; height: 22px; position: absolute; display: block; background-color: #1890ff; border-radius: 100%; transform: scale(0.75); transform-origin: 50% 50%; opacity: 0.3; animation: antSpinMove 1s infinite linear alternate; } .loading-dot i:nth-child(1) { top: 0; left: 0; } .loading-dot i:nth-child(2) { top: 0; right: 0; -webkit-animation-delay: 0.4s; animation-delay: 0.4s; } .loading-dot i:nth-child(3) { right: 0; bottom: 0; -webkit-animation-delay: 0.8s; animation-delay: 0.8s; } .loading-dot i:nth-child(4) { bottom: 0; left: 0; -webkit-animation-delay: 1.2s; animation-delay: 1.2s; } @keyframes antRotate { to { -webkit-transform: rotate(405deg); transform: rotate(405deg); } } @-webkit-keyframes antRotate { to { -webkit-transform: rotate(405deg); transform: rotate(405deg); } } @keyframes antSpinMove { to { opacity: 1; } } @-webkit-keyframes antSpinMove { to { opacity: 1; } } </style> </head> <body> <div id="app"> <div id="loading-mask"> <div class="loading-wrapper"> <span class="loading-dot loading-dot-spin"> <i></i><i></i><i></i><i></i> </span> </div> </div> </div> </body> </html>
4. 效果图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具