z-loading.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <view>
  3. <view class="loadmore-animate flex-n fac fjc" v-if="showLoading">
  4. <view class="circle mr-20"></view>
  5. 加载更多
  6. </view>
  7. <view class="loadmore-nodata" v-else>
  8. <view v-if="length<total">
  9. 下拉加载
  10. </view>
  11. <view v-else>
  12. 没有更多了
  13. </view>
  14. </view>
  15. </view>
  16. </template>
  17. <script>
  18. export default {
  19. name: 'z-loading',
  20. props:{
  21. showLoading:Boolean,
  22. length:{
  23. type:Number,
  24. value:0,
  25. },
  26. total:{
  27. type:Number,
  28. value:0,
  29. }
  30. }
  31. }
  32. </script>
  33. <style lang="scss" scoped>
  34. .loadmore-animate {
  35. font-size: 24rpx;
  36. text-align: center;
  37. line-height: 60rpx;
  38. color: #007AFF;
  39. .circle {
  40. width: 20rpx;
  41. height: 20rpx;
  42. border-radius: 50%;
  43. border: 6rpx dotted #007AFF;
  44. animation: rotateanimate .5s infinite;
  45. }
  46. }
  47. .loadmore-nodata {
  48. font-size: 24rpx;
  49. text-align: center;
  50. line-height: 80rpx;
  51. color: #eee;
  52. }
  53. @keyframes rotateanimate {
  54. 0% {
  55. transform: rotate(90deg);
  56. }
  57. 33% {
  58. transform: rotate(180deg);
  59. }
  60. 66% {
  61. transform: rotate(270deg);
  62. }
  63. 100% {
  64. transform: rotate(360deg);
  65. }
  66. }
  67. </style>