loading - 副本.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  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. z-index: 3;
  59. }
  60. .loader:before,
  61. .loader:after {
  62. position: absolute;
  63. top: 0;
  64. content: '';
  65. }
  66. .loader:before {
  67. left: -1.5em;
  68. -webkit-animation-delay: -0.32s;
  69. animation-delay: -0.32s;
  70. background: #FF9999;
  71. color: #FF9999;
  72. }
  73. .loader:after {
  74. left: 1.5em;
  75. background: #FE6666;
  76. color: #FE6666;
  77. }
  78. @-webkit-keyframes load1 {
  79. 0%,
  80. 80%,
  81. 100% {
  82. box-shadow: 0 0;
  83. height: 2em;
  84. }
  85. 40% {
  86. box-shadow: 0 -2em;
  87. height: 3em;
  88. }
  89. }
  90. @keyframes load1 {
  91. 0%,
  92. 80%,
  93. 100% {
  94. box-shadow: 0 0;
  95. height: 2em;
  96. }
  97. 40% {
  98. box-shadow: 0 -2em;
  99. height: 3em;
  100. }
  101. }
  102. /* .loader,
  103. .loader:before,
  104. .loader:after {
  105. border-radius: 50%;
  106. width: 2.5em;
  107. height: 2.5em;
  108. -webkit-animation-fill-mode: both;
  109. animation-fill-mode: both;
  110. -webkit-animation: load7 1.8s infinite ease-in-out;
  111. animation: load7 1.8s infinite ease-in-out;
  112. }
  113. .loader {
  114. color: #000;
  115. font-size: 10px;
  116. margin: 80px auto;
  117. position: fixed;
  118. text-indent: -9999em;
  119. -webkit-transform: translateZ(0);
  120. -ms-transform: translateZ(0);
  121. transform: translateZ(0);
  122. -webkit-animation-delay: -0.16s;
  123. animation-delay: -0.16s;
  124. top: 30%;left: 0;bottom: 0;right: 0;
  125. }
  126. .loader:before,
  127. .loader:after {
  128. content: '';
  129. position: absolute;
  130. top: 0;
  131. }
  132. .loader:before {
  133. left: -3.5em;
  134. -webkit-animation-delay: -0.32s;
  135. animation-delay: -0.32s;
  136. }
  137. .loader:after {
  138. left: 3.5em;
  139. }
  140. @-webkit-keyframes load7 {
  141. 0%,
  142. 80%,
  143. 100% {
  144. box-shadow: 0 2.5em 0 -1.3em;
  145. }
  146. 40% {
  147. box-shadow: 0 2.5em 0 0;
  148. }
  149. }
  150. @keyframes load7 {
  151. 0%,
  152. 80%,
  153. 100% {
  154. box-shadow: 0 2.5em 0 -1.3em;
  155. }
  156. 40% {
  157. box-shadow: 0 2.5em 0 0;
  158. }
  159. } */
  160. /* .loader {
  161. font-size: 10px;
  162. margin: 50px auto;
  163. text-indent: -9999em;
  164. width: 8em;
  165. height: 8em;
  166. border-radius: 50%;
  167. background: transparent ;
  168. background: -moz-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  169. background: -webkit-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  170. background: -o-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  171. background: -ms-linear-gradient(left, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  172. background: linear-gradient(to right, #CCCCCC 10%, rgba(255, 255, 255, 0) 42%);
  173. position: fixed;
  174. top: 30%;left: 0;bottom: 0;right: 0;
  175. -webkit-animation: load3 1.4s infinite linear;
  176. animation: load3 1.4s infinite linear;
  177. -webkit-transform: translateZ(0);
  178. -ms-transform: translateZ(0);
  179. transform: translateZ(0);
  180. }
  181. .loader:before {
  182. width: 50%;
  183. height: 50%;
  184. background: transparent ;
  185. border-radius: 100% 0 0 0;
  186. position: absolute;
  187. top: 0;
  188. left: 0;
  189. content: '';
  190. }
  191. .loader:after {
  192. background: #FFFFFF ;
  193. width: 75%;
  194. height: 75%;
  195. border-radius: 50%;
  196. content: '';
  197. margin: auto;
  198. position: absolute;
  199. top: 0;
  200. left: 0;
  201. bottom: 0;
  202. right: 0;
  203. }
  204. @-webkit-keyframes load3 {
  205. 0% {
  206. -webkit-transform: rotate(0deg);
  207. transform: rotate(0deg);
  208. }
  209. 100% {
  210. -webkit-transform: rotate(360deg);
  211. transform: rotate(360deg);
  212. }
  213. }
  214. @keyframes load3 {
  215. 0% {
  216. -webkit-transform: rotate(0deg);
  217. transform: rotate(0deg);
  218. }
  219. 100% {
  220. -webkit-transform: rotate(360deg);
  221. transform: rotate(360deg);
  222. }
  223. } */
  224. </style>