reload.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <div class="ok-loading">
  3. <div class="ball-loader"> <span></span><span></span><span></span><span></span> </div>
  4. </div>
  5. </template>
  6. <script lang="js">
  7. import { defineComponent } from 'vue';
  8. export default defineComponent({
  9. name: 'routerReload',
  10. setup() {}
  11. });
  12. </script>
  13. <style lang="scss">
  14. .ok-loading {
  15. width: calc(100% - 30px);
  16. height: calc(100% - 30px);
  17. display: flex;
  18. align-items: center;
  19. justify-content: center;
  20. background-color: var(--system-page-background);
  21. margin: 15px;
  22. }
  23. .ok-loading.close {
  24. animation: close 1s;
  25. -webkit-animation: close 1s;
  26. animation-fill-mode: forwards;
  27. }
  28. .ball-loader {
  29. }
  30. .ball-loader > span,
  31. .signal-loader > span {
  32. background-color: var(--system-primary-color);
  33. display: inline-block;
  34. }
  35. .ball-loader > span:nth-child(1),
  36. .ball-loader.sm > span:nth-child(1),
  37. .signal-loader > span:nth-child(1),
  38. .signal-loader.sm > span:nth-child(1) {
  39. -webkit-animation-delay: 0s;
  40. animation-delay: 0s;
  41. }
  42. .ball-loader > span:nth-child(2),
  43. .ball-loader.sm > span:nth-child(2),
  44. .signal-loader > span:nth-child(2),
  45. .signal-loader.sm > span:nth-child(2) {
  46. -webkit-animation-delay: 0.1s;
  47. animation-delay: 0.1s;
  48. }
  49. .ball-loader > span:nth-child(3),
  50. .ball-loader.sm > span:nth-child(3),
  51. .signal-loader > span:nth-child(3),
  52. .signal-loader.sm > span:nth-child(3) {
  53. -webkit-animation-delay: 0.15s;
  54. animation-delay: 0.15s;
  55. }
  56. .ball-loader > span:nth-child(4),
  57. .ball-loader.sm > span:nth-child(4),
  58. .signal-loader > span:nth-child(4),
  59. .signal-loader.sm > span:nth-child(4) {
  60. -webkit-animation-delay: 0.2s;
  61. animation-delay: 0.2s;
  62. }
  63. .ball-loader > span {
  64. width: 20px;
  65. height: 20px;
  66. margin: 0 3px;
  67. border-radius: 50%;
  68. transform: scale(0);
  69. -ms-transform: scale(0);
  70. -webkit-transform: scale(0);
  71. animation: ball-load 1s ease-in-out infinite;
  72. -webkit-animation: 1s ball-load ease-in-out infinite;
  73. }
  74. @-webkit-keyframes ball-load {
  75. 0% {
  76. transform: scale(0);
  77. -webkit-transform: scale(0);
  78. }
  79. 50% {
  80. transform: scale(1);
  81. -webkit-transform: scale(1);
  82. }
  83. 100% {
  84. transform: scale(0);
  85. -webkit-transform: scale(0);
  86. }
  87. }
  88. @keyframes ball-load {
  89. 0% {
  90. transform: scale(0);
  91. -webkit-transform: scale(0);
  92. }
  93. 50% {
  94. transform: scale(1);
  95. -webkit-transform: scale(1);
  96. }
  97. 100% {
  98. transform: scale(0);
  99. -webkit-transform: scale(0);
  100. }
  101. }
  102. @keyframes close {
  103. 0% {
  104. opacity: 1;
  105. /*display: block;*/
  106. }
  107. 100% {
  108. opacity: 0;
  109. /*display: none;*/
  110. }
  111. }
  112. </style>