Vue加载区域数据时的Loading效果

7 篇文章 0 订阅

切换筛选条件和切换后端分页时经常会有一段时间的请求数据时间,哪怕时间再短也是一段时间,这样会造成用户的体验感很差,因此用css3简单做了个加载效果。

具体的代码长这亚子,主要是用了css3  animation属性

animation: zoomL 1.4s ease-in-out infinite alternate; 这里ease-in-out是先慢后快,infinite是无限,alternate是交替

其他两个.loading节点animation-delay: -1s是让他们延迟执行,可以根据自己的需要更改

使用的话就注册为全局组件然后在页面调用就可

这里我通过props传值控制显示隐藏的,供参考

<template>
  <div class="loading-wrapper">
    <div class="loading-content clearfix">
      <div class="loading" style="animation-delay: -1s"></div>
      <div class="loading" style="animation-delay: -0.1s"></div>
      <div class="loading"></div>
    </div>
  </div>
</template>
<script>
export default {
  
}
</script>
<style lang="scss" scoped>
.loading-wrapper {
  width: 100%;
  position: relative;
  height: 50px;
  .loading-content {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    .loading {
      float: left;
      width: 15px;
      margin-right: 12px;
      height: 15px;
      background: #f62700;
      border-radius: 100%;
      animation: zoomL 1.4s ease-in-out infinite alternate;
    }
  }
}
@keyframes zoomL {
  0%{
    opacity: 0.5;
    transform: scale(2);
  }
  100%{
    opacity: 1;
    transform: scale(1);
  }
}
</style>
<template>
  <div>
    <ul class="row">
      <li v-for="item in list" :key="item.id" class="mv-item">
        <div class="cover">
          <span class="play"><i class="iconfont icon-ziyuan">{{item.playCount|handlePlayCount}}</i></span>
          <div class="icon-wrapper">
            <i class="iconfont icon-ziyuan play-button" @click="play(item.id)"></i>
          </div>
          <p class="d-flex j-sb bt-info">
            <span>{{item.artistName}}</span>
            <span>{{item.duration|formatTransitionTime}}</span>
          </p>
        </div>
        <h2 class="my-1">{{item.name}}</h2>
      </li>
    </ul>
    <loading-plus v-if="beforeReady"></loading-plus>
  </div>
</template>
<script>
export default {
  props:{
    list:{
      type:Array,
      default:()=>[]
    },
    beforeReady:{
      type:Boolean,
      default:false
    }
  },
  methods: {
  },
}
</script>
<style lang="scss" scoped>
  
</style>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值