|
1 | 1 | <template> |
2 | 2 | <div class="infinite-loading-container"> |
3 | 3 | <i class="icon-loading" v-show="isLoading"></i> |
4 | | - <div class="infinite-status-tips" v-show="!isLoading && isNoResults"> |
| 4 | + <div class="infinite-status-prompt" v-show="!isLoading && isNoResults"> |
5 | 5 | <slot name="no-results">No results :(</slot> |
6 | 6 | </div> |
7 | | - <div class="infinite-status-tips" v-show="!isLoading && isNoMore"> |
| 7 | + <div class="infinite-status-prompt" v-show="!isLoading && isNoMore"> |
8 | 8 | <slot name="no-more">No more data :)</slot> |
9 | 9 | </div> |
10 | 10 | </div> |
|
108 | 108 | }; |
109 | 109 | </script> |
110 | 110 | <style lang="less" scoped> |
111 | | - .icon-loading{ |
112 | | - position: relative; |
113 | | - border: 1px solid #999; |
114 | | - animation: ease icon-rotating 1.5s infinite; |
115 | | - &:before{ |
116 | | - @size: 6px; |
117 | | - content: ''; |
118 | | - position: absolute; |
119 | | - display: block; |
120 | | - top: 0; |
121 | | - left: 50%; |
122 | | - margin-top: -@size/2; |
123 | | - margin-left: -@size/2; |
124 | | - width: @size; |
125 | | - height: @size; |
126 | | - background-color: #999; |
127 | | - border-radius: 50%; |
128 | | - } |
129 | | - } |
130 | | - .icon-wave-dots{ |
131 | | - position: relative; |
132 | | - &:before{ |
133 | | - @size: 8px; |
134 | | - @wave: -6px; |
135 | | - @near-wave: -4px; |
136 | | - @after-wave: 2px; |
137 | | - @c-wave: #999; |
138 | | - @c-near-wave: #bbb; |
139 | | - content: ''; |
140 | | - position: absolute; |
141 | | - top: 50%; |
142 | | - left: 50%; |
143 | | - margin-left: -@size/2; |
144 | | - margin-top: -@size/2; |
145 | | - width: @size; |
146 | | - height: @size; |
147 | | - background-color: @c-near-wave; |
148 | | - border-radius: 50%; |
149 | | - animation: linear icon-wave-dots 2.8s infinite; |
150 | | - @keyframes icon-wave-dots{ |
151 | | - 0%{ |
152 | | - box-shadow: -@size * 4 0 0 @c-near-wave, |
153 | | - -@size * 2 0 0 @c-near-wave, |
154 | | - @size * 2 0 0 @c-near-wave, |
155 | | - @size * 4 0 0 @c-near-wave; |
156 | | - } |
157 | | - 5%{ |
158 | | - box-shadow: -@size * 4 @near-wave 0 @c-near-wave, |
159 | | - -@size * 2 0 0 @c-near-wave, |
160 | | - @size * 2 0 0 @c-near-wave, |
161 | | - @size * 4 0 0 @c-near-wave; |
162 | | - transform: translateY(0); |
163 | | - } |
164 | | - 10%{ |
165 | | - box-shadow: -@size * 4 @wave 0 @c-wave, |
166 | | - -@size * 2 @near-wave 0 @c-near-wave, |
167 | | - @size * 2 0 0 @c-near-wave, |
168 | | - @size * 4 0 0 @c-near-wave; |
169 | | - transform: translateY(0); |
170 | | - } |
171 | | - 15%{ |
172 | | - box-shadow: -@size * 4 @after-wave 0 @c-near-wave, |
173 | | - -@size * 2 @wave - @near-wave 0 @c-wave, |
174 | | - @size * 2 -@near-wave 0 @c-near-wave, |
175 | | - @size * 4 -@near-wave 0 @c-near-wave; |
176 | | - transform: translateY(@near-wave); |
177 | | - background-color: @c-near-wave; |
178 | | - } |
179 | | - 20%{ |
180 | | - box-shadow: -@size * 4 -@wave 0 @c-near-wave, |
181 | | - -@size * 2 @near-wave - @wave + @after-wave 0 @c-near-wave, |
182 | | - @size * 2 @near-wave - @wave 0 @c-near-wave, |
183 | | - @size * 4 -@wave 0 @c-near-wave; |
184 | | - transform: translateY(@wave); |
185 | | - background-color: @c-wave; |
186 | | - } |
187 | | - 25%{ |
188 | | - @offset: @near-wave + @after-wave; |
189 | | - box-shadow: -@size * 4 -@offset 0 @c-near-wave, |
190 | | - -@size * 2 -@offset 0 @c-near-wave, |
191 | | - @size * 2 @wave - @offset 0 @c-wave, |
192 | | - @size * 4 @near-wave - @offset 0 @c-near-wave; |
193 | | - transform: translateY(@offset); |
194 | | - background-color: @c-near-wave; |
195 | | - } |
196 | | - 30%{ |
197 | | - box-shadow: -@size * 4 0 0 @c-near-wave, |
198 | | - -@size * 2 0 0 @c-near-wave, |
199 | | - @size * 2 @near-wave + @after-wave 0 @c-near-wave, |
200 | | - @size * 4 @wave 0 @c-wave; |
201 | | - transform: translateY(0); |
202 | | - } |
203 | | - 35%{ |
204 | | - box-shadow: -@size * 4 0 0 @c-near-wave, |
205 | | - -@size * 2 0 0 @c-near-wave, |
206 | | - @size * 2 0 0 @c-near-wave, |
207 | | - @size * 4 @near-wave + @after-wave 0 @c-near-wave; |
208 | | - } |
209 | | - 40%{ |
210 | | - box-shadow: -@size * 4 0 0 @c-near-wave, |
211 | | - -@size * 2 0 0 @c-near-wave, |
212 | | - @size * 2 0 0 @c-near-wave, |
213 | | - @size * 4 0 0 @c-near-wave; |
214 | | - } |
215 | | - 100%{ |
216 | | - box-shadow: -@size * 4 0 0 @c-near-wave, |
217 | | - -@size * 2 0 0 @c-near-wave, |
218 | | - @size * 2 0 0 @c-near-wave, |
219 | | - @size * 4 0 0 @c-near-wave; |
220 | | - } |
221 | | - } |
222 | | - } |
223 | | - } |
224 | | -
|
225 | | - .icon-spiral{ |
226 | | - border: 2px solid #777; |
227 | | - border-right-color: transparent; |
228 | | - animation: linear icon-rotating .85s infinite; |
229 | | - } |
230 | | -
|
231 | | - .icon-circles{ |
232 | | - position: relative; |
233 | | - &:before{ |
234 | | - @size: 5px; |
235 | | - @radius: 12px; |
236 | | - @shallow: 8%; |
237 | | - @c-base: #505050; |
238 | | - content: ''; |
239 | | - position: absolute; |
240 | | - left: 50%; |
241 | | - top: 50%; |
242 | | - margin-top: -@size/2; |
243 | | - margin-left: -@size/2; |
244 | | - width: @size; |
245 | | - height: @size; |
246 | | - border-radius: 50%; |
247 | | - animation: linear icon-circles .75s infinite; |
248 | | - @keyframes icon-circles{ |
249 | | - 0%{ |
250 | | - box-shadow: 0 -@radius 0 @c-base, |
251 | | - @radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow), |
252 | | - @radius 0 0 lighten(@c-base, @shallow * 2), |
253 | | - @radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 3), |
254 | | - 0 @radius 0 lighten(@c-base, @shallow * 4), |
255 | | - -@radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 5), |
256 | | - -@radius 0 0 lighten(@c-base, @shallow * 6), |
257 | | - -@radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 7); |
258 | | - } |
259 | | - 12.5%{ |
260 | | - box-shadow: 0 -@radius 0 lighten(@c-base, @shallow * 7), |
261 | | - @radius * 0.71 -@radius * 0.71 0 @c-base, |
262 | | - @radius 0 0 lighten(@c-base, @shallow * 1), |
263 | | - @radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 2), |
264 | | - 0 @radius 0 lighten(@c-base, @shallow * 3), |
265 | | - -@radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 4), |
266 | | - -@radius 0 0 lighten(@c-base, @shallow * 5), |
267 | | - -@radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 6); |
268 | | - } |
269 | | - 25%{ |
270 | | - box-shadow: 0 -@radius 0 lighten(@c-base, @shallow * 6), |
271 | | - @radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 7), |
272 | | - @radius 0 0 @c-base, |
273 | | - @radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 1), |
274 | | - 0 @radius 0 lighten(@c-base, @shallow * 2), |
275 | | - -@radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 3), |
276 | | - -@radius 0 0 lighten(@c-base, @shallow * 4), |
277 | | - -@radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 5); |
278 | | - } |
279 | | - 37.5%{ |
280 | | - box-shadow: 0 -@radius 0 lighten(@c-base, @shallow * 5), |
281 | | - @radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 6), |
282 | | - @radius 0 0 lighten(@c-base, @shallow * 7), |
283 | | - @radius * 0.71 @radius * 0.71 0 @c-base, |
284 | | - 0 @radius 0 lighten(@c-base, @shallow * 1), |
285 | | - -@radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 2), |
286 | | - -@radius 0 0 lighten(@c-base, @shallow * 3), |
287 | | - -@radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 4); |
288 | | - } |
289 | | - 50%{ |
290 | | - box-shadow: 0 -@radius 0 lighten(@c-base, @shallow * 4), |
291 | | - @radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 5), |
292 | | - @radius 0 0 lighten(@c-base, @shallow * 6), |
293 | | - @radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 7), |
294 | | - 0 @radius 0 @c-base, |
295 | | - -@radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 1), |
296 | | - -@radius 0 0 lighten(@c-base, @shallow * 2), |
297 | | - -@radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 3); |
298 | | - } |
299 | | - 62.5%{ |
300 | | - box-shadow: 0 -@radius 0 lighten(@c-base, @shallow * 3), |
301 | | - @radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 4), |
302 | | - @radius 0 0 lighten(@c-base, @shallow * 5), |
303 | | - @radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 6), |
304 | | - 0 @radius 0 lighten(@c-base, @shallow * 7), |
305 | | - -@radius * 0.71 @radius * 0.71 0 @c-base, |
306 | | - -@radius 0 0 lighten(@c-base, @shallow * 1), |
307 | | - -@radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 2); |
308 | | - } |
309 | | - 75%{ |
310 | | - box-shadow: 0 -@radius 0 lighten(@c-base, @shallow * 2), |
311 | | - @radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 3), |
312 | | - @radius 0 0 lighten(@c-base, @shallow * 4), |
313 | | - @radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 5), |
314 | | - 0 @radius 0 lighten(@c-base, @shallow * 6), |
315 | | - -@radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 7), |
316 | | - -@radius 0 0 @c-base, |
317 | | - -@radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 1); |
318 | | - } |
319 | | - 87.5%{ |
320 | | - box-shadow: 0 -@radius 0 lighten(@c-base, @shallow * 1), |
321 | | - @radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 2), |
322 | | - @radius 0 0 lighten(@c-base, @shallow * 3), |
323 | | - @radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 4), |
324 | | - 0 @radius 0 lighten(@c-base, @shallow * 5), |
325 | | - -@radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 6), |
326 | | - -@radius 0 0 lighten(@c-base, @shallow * 7), |
327 | | - -@radius * 0.71 -@radius * 0.71 0 @c-base; |
328 | | - } |
329 | | - 100%{ |
330 | | - box-shadow: 0 -@radius 0 @c-base, |
331 | | - @radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow), |
332 | | - @radius 0 0 lighten(@c-base, @shallow * 2), |
333 | | - @radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 3), |
334 | | - 0 @radius 0 lighten(@c-base, @shallow * 4), |
335 | | - -@radius * 0.71 @radius * 0.71 0 lighten(@c-base, @shallow * 5), |
336 | | - -@radius 0 0 lighten(@c-base, @shallow * 6), |
337 | | - -@radius * 0.71 -@radius * 0.71 0 lighten(@c-base, @shallow * 7); |
338 | | - } |
339 | | - } |
340 | | - } |
341 | | - } |
| 111 | + @import '../styles/spinner'; |
342 | 112 |
|
343 | 113 | .infinite-loading-container{ |
344 | 114 | clear: both; |
|
355 | 125 | } |
356 | 126 | } |
357 | 127 |
|
358 | | - .infinite-status-tips{ |
| 128 | + .infinite-status-prompt{ |
359 | 129 | color: #666; |
360 | 130 | font-size: 14px; |
361 | 131 | text-align: center; |
362 | 132 | padding: 10px 0; |
363 | 133 | } |
364 | | -
|
365 | | - @keyframes icon-rotating{ |
366 | | - 0%{ |
367 | | - transform: rotate(0); |
368 | | - } |
369 | | - 100%{ |
370 | | - transform: rotate(360deg); |
371 | | - } |
372 | | - } |
373 | 134 | </style> |
0 commit comments