VUE首屏加载loading效果

本文探讨了在乾坤微前端框架中,为解决图片资源路径问题,如何通过引入Base64编码和动态loading效果来减小包体积和加载时间。作者分享了HTML和Vue代码示例,展示了如何在页面加载初期显示loading动画,直到资源加载完成再隐藏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用乾坤微前端框架中,遇见图片资源路径存在访问问题,在不搭CDN的情况下,使用base64方式将图片资源打入代码。这样会导致包体积过大,加载时间长;
所以加了一个loading效果;
1.在index.html入口增加 loading;

<!DOCTYPE html>
<html lang="">

<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">
  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  <!-- <script type="text/javascript" src="./config.js"></script> -->
  <title>
    <%= htmlWebpackPlugin.options.title %>
  </title>
</head>
<style media="screen" type="text/css">
  /* #app-cockpit-loading { width: 100%; height: 100%; }
  #app-cockpit-loading span {
       position: absolute;
       display: block;
       font-size: 50px;
       line-height: 50px;
       top: 50%;
       left: 50%;
       width: 200px;
       height: 100px;
       -webkit-transform: translateY(-50%)  translateX(-50%);
       transform: translateY(-50%)  translateX(-50%);
   } */

  #app-cockpit-loading {
    width: 120px;
    height: 40px;
    position: absolute;
    font-size: 50px;
    line-height: 50px;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
  }

  #app-cockpit-loading span {
    display: inline-block;
    width: 8px;
    height: 100%;
    border-radius: 4px;
    background: lightgreen;
    -webkit-animation: load 1s ease infinite;
  }

  @-webkit-keyframes load {

    0%,
    100% {
      height: 40px;
      background: lightgreen;
    }

    50% {
      height: 70px;
      margin: -15px 0;
      background: lightblue;
    }
  }

  #app-cockpit-loading span:nth-child(2) {
    -webkit-animation-delay: 0.2s;
  }

  #app-cockpit-loading span:nth-child(3) {
    -webkit-animation-delay: 0.4s;
  }

  #app-cockpit-loading span:nth-child(4) {
    -webkit-animation-delay: 0.6s;
  }

  #app-cockpit-loading span:nth-child(5) {
    -webkit-animation-delay: 0.8s;
  }
  
</style>

<body>
  <noscript>
    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
        Please enable it to continue.</strong>
  </noscript>
  <div id="app-cockpit-loading">
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
  </div>
  <div id="app"></div>
  <!-- built files will be auto injected -->
</body>

</html>

2.在app.vue mounted()中执行
document.getElementById('app-cockpit-loading').remove();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值