VUE首屏加载loading效果

在使用乾坤微前端框架中,遇见图片资源路径存在访问问题,在不搭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();

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中实现首屏加载动画,你可以参考以下步骤: 1. 首先,在你的Vue项目中创建一个全局加载组件,用于展示加载动画。你可以在组件中使用CSS或动画库来定义你想要的加载效果。 2. 在你的根组件(通常是App.vue)中引入并注册这个全局加载组件。 3. 在页面加载的过程中,使用Vue的生命周期钩子函数(如created或mounted)来控制加载动画的显示和隐藏。在页面加载之前,显示加载动画;加载完成后,隐藏加载动画。 4. 如果你想要自定义加载动画的样式,你可以在全局加载组件中定义样式,并在组件中使用<slot>标签来插入内容。 5. 最后,你可以根据你的需求在加载动画组件中添文本或图标来显示加载状态,以提供更好的用户体验。 请注意,加载动画和数据请求的组件不应同时使用,以免出现两个加载效果。另外,要谨慎使用全局加载动画,因为它会在整个应用程序中显示。 这是一个简单的示例代码,展示了如何在Vue3中实现首屏加载动画: ```vue // 在全局加载组件中定义加载动画的样式和内容 <template> <div class="loading"> <div class="loader"></div> <p>Loading...</p> </div> </template> <script> export default { name: 'Loading', // 根据需要可以添进入、离开过渡效果 // 可以使用CSS或动画库定义加载动画的样式 // 在created或mounted钩子函数中控制显示和隐藏 created() { // 显示加载动画 }, mounted() { // 隐藏加载动画 } } </script> // 在根组件中引入并注册全局加载组件 <template> <div id="app"> <router-view /> <Loading v-if="isLoading" /> </div> </template> <script> import Loading from '@/components/Loading.vue'; export default { name: 'App', components: { Loading }, data() { return { isLoading: true } }, created() { // 页面加载前显示加载动画 }, mounted() { // 页面加载完成后隐藏加载动画 } } </script> ``` 这样,当你的Vue应用程序加载时,首屏将会显示加载动画,加载完成后加载动画将会被隐藏。你可以根据自己的需求自定义加载动画的样式和内容。记得根据实际情况在合适的生命周期钩子函数中控制加载动画的显示和隐藏。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue实现页面加载动画效果](https://download.csdn.net/download/weixin_38721565/12772582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vue实现网页首屏加载动画、页面内请求数据加载loading](https://blog.csdn.net/weixin_48337566/article/details/127896990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值