loading.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. <!-- <template>
  2. <view>
  3. <view class="loading" v-if="is_loading">
  4. <image class="load_img" :src="waimai ? '../../../static/loading/loading2.gif' : '../../static/loading/loading2.gif'" mode=""></image>
  5. </view>
  6. </view>
  7. </template> -->
  8. <template>
  9. <view class="" v-if="is_loading">
  10. <view class="loader">
  11. </view>
  12. </view>
  13. </template>
  14. <script>
  15. export default {
  16. props: ["waimai"],
  17. data() {
  18. return {
  19. }
  20. },
  21. methods:{
  22. switch_loading(){
  23. this.$store.commit("switch_loading")
  24. }
  25. },
  26. //实测直接在标签属性里写 $store.state.XX 拿不到数据 所以这里通过 计算属性去监听一下
  27. computed:{
  28. is_loading(){
  29. return this.$store.state.user.loading
  30. }
  31. }
  32. }
  33. </script>
  34. <style scoped>
  35. .loading{position: fixed;top: 0;left: 0;bottom: 0;right: 0;display: flex;align-items: center;justify-content: space-around;z-index: 1001;background: transparent;}
  36. .load_img{width: 640rpx;height: 490rpx;}
  37. .loader,
  38. .loader:before,
  39. .loader:after {
  40. -webkit-animation: load1 1s infinite ease-in-out;
  41. animation: load1 1s infinite ease-in-out;
  42. width: 1em;
  43. height: 3em;
  44. }
  45. .loader {
  46. color: #FF8080;
  47. background: #FF8080;
  48. text-indent: -9999em;
  49. margin: 88px auto;
  50. position: fixed;
  51. font-size: 16upx;
  52. -webkit-transform: translateZ(0);
  53. -ms-transform: translateZ(0);
  54. transform: translateZ(0);
  55. -webkit-animation-delay: -0.16s;
  56. animation-delay: -0.16s;
  57. top: 30%;left: 0;bottom: 0;right: 0;
  58. }
  59. .loader:before,
  60. .loader:after {
  61. position: absolute;
  62. top: 0;
  63. content: '';
  64. }
  65. .loader:before {
  66. left: -1.5em;
  67. -webkit-animation-delay: -0.32s;
  68. animation-delay: -0.32s;
  69. background: #FF9999;
  70. color: #FF9999;
  71. }
  72. .loader:after {
  73. left: 1.5em;
  74. background: #FE6666;
  75. color: #FE6666;
  76. }
  77. @-webkit-keyframes load1 {
  78. 0%,
  79. 80%,
  80. 100% {
  81. box-shadow: 0 0;
  82. height: 2em;
  83. }
  84. 40% {
  85. box-shadow: 0 -2em;
  86. height: 3em;
  87. }
  88. }
  89. @keyframes load1 {
  90. 0%,
  91. 80%,
  92. 100% {
  93. box-shadow: 0 0;
  94. height: 2em;
  95. }
  96. 40% {
  97. box-shadow: 0 -2em;
  98. height: 3em;
  99. }
  100. }
  101. /* .loader,
  102. .loader:before,
  103. .loader:after {
  104. border-radius: 50%;
  105. width: 2.5em;
  106. height: 2.5em;
  107. -webkit-animation-fill-mode: both;
  108. animation-fill-mode: both;
  109. -webkit-animation: load7 1.8s infinite ease-in-out;
  110. animation: load7 1.8s infinite ease-in-out;
  111. }
  112. .loader {
  113. color: #000;
  114. font-size: 10px;
  115. margin: 80px auto;
  116. position: fixed;
  117. text-indent: -9999em;
  118. -webkit-transform: translateZ(0);
  119. -ms-transform: translateZ(0);
  120. transform: translateZ(0);
  121. -webkit-animation-delay: -0.16s;
  122. animation-delay: -0.16s;
  123. top: 30%;left: 0;bottom: 0;right: 0;
  124. }
  125. .loader:before,
  126. .loader:after {
  127. content: '';
  128. position: absolute;
  129. top: 0;
  130. }
  131. .loader:before {
  132. left: -3.5em;
  133. -webkit-animation-delay: -0.32s;
  134. animation-delay: -0.32s;
  135. }
  136. .loader:after {
  137. left: 3.5em;
  138. }
  139. @-webkit-keyframes load7 {
  140. 0%,
  141. 80%,
  142. 100% {
  143. box-shadow: 0 2.5em 0 -1.3em;
  144. }
  145. 40% {
  146. box-shadow: 0 2.5em 0 0;
  147. }
  148. }
  149. @keyframes load7 {
  150. 0%,
  151. 80%,
  152. 100% {
  153. box-shadow: 0 2.5em 0 -1.3em;
  154. }
  155. 40% {
  156. box-shadow: 0 2.5em 0 0;
  157. }
  158. } */
  159. /* .loader {
  160. font-size: 10px;
  161. margin: 50px auto;
  162. text-indent: -9999em;
  163. width: 8em;
  164. height: 8em;
  165. border-radius: 50%;
  166. background: transparent ;
  167. background: -moz-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  168. background: -webkit-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  169. background: -o-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  170. background: -ms-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  171. background: linear-gradient(to right, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  172. position: fixed;
  173. top: 30%;left: 0;bottom: 0;right: 0;
  174. -webkit-animation: load3 1.4s infinite linear;
  175. animation: load3 1.4s infinite linear;
  176. -webkit-transform: translateZ(0);
  177. -ms-transform: translateZ(0);
  178. transform: translateZ(0);
  179. }
  180. .loader:before {
  181. width: 50%;
  182. height: 50%;
  183. background: transparent ;
  184. border-radius: 100% 0 0 0;
  185. position: absolute;
  186. top: 0;
  187. left: 0;
  188. content: '';
  189. }
  190. .loader:after {
  191. background: #FFFFFF ;
  192. width: 75%;
  193. height: 75%;
  194. border-radius: 50%;
  195. content: '';
  196. margin: auto;
  197. position: absolute;
  198. top: 0;
  199. left: 0;
  200. bottom: 0;
  201. right: 0;
  202. }
  203. @-webkit-keyframes load3 {
  204. 0% {
  205. -webkit-transform: rotate(0deg);
  206. transform: rotate(0deg);
  207. }
  208. 100% {
  209. -webkit-transform: rotate(360deg);
  210. transform: rotate(360deg);
  211. }
  212. }
  213. @keyframes load3 {
  214. 0% {
  215. -webkit-transform: rotate(0deg);
  216. transform: rotate(0deg);
  217. }
  218. 100% {
  219. -webkit-transform: rotate(360deg);
  220. transform: rotate(360deg);
  221. }
  222. } */
  223. </style>