123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <template>
- <transition name="fade">
- <view
- class="mask"
- v-show="isActive"
- :class="{ 'full-screen': isFullScreen }"
- :style="{ backgroundColor }"
- >
- <view class="spinner" :style="{ transform:`translate(-50%, -${translateY}%)`}">
- <slot>
- <!-- ==========在这里改成选择的那一个========== -->
- <shrinkRect :color="color" :size="size"/>
- <!-- ==========在这里改成选择的那一个========== -->
- </slot>
- <view
- v-if="text.length"
- :style="{ color:textColor }">
- {{ text }}
- </view>
- </view>
- </view>
- </transition>
- </template>
- <script>
- // ==========在这里选一个你要的其他去掉也行==========
- // import loop from './loaders/loop.vue'
- // import bounce from './loaders/bounce.vue'
- // import doubleBounce from './loaders/double-bounce.vue'
- // import doubleCube from './loaders/double-cube.vue'
- // import doubleDot from './loaders/double-dot.vue'
- // import rotatePlane from './loaders/rotate-plane.vue'
- // import scaleOut from './loaders/scale-out.vue'
- import shrinkRect from './loaders/shrink-rect.vue'
- // ==========在这里选一个你要的其他去掉也行==========
- export default {
- name: 'ourLoading',
- components: {
- // ==========在这里选择一个==========
- // loop,
- // bounce,
- // doubleBounce,
- // doubleCube,
- // doubleDot,
- // rotatePlane,
- // scaleOut,
- shrinkRect
- // ==========在这里选择一个==========
- },
- props: {
- active: Boolean,
- translateY: {
- type: Number,
- default: 150
- },
- text: {
- type: String,
- default: ''
- },
- color: {
- type: String,
- default: '#333'
- },
- textColor: {
- type: String,
- default: '#333'
- },
- isFullScreen: {
- type: Boolean,
- default: false
- },
- backgroundColor: {
- type: String,
- default: 'rgba(255, 255, 255, .9)'
- },
- size: {
- type: Number,
- default: 40
- }
- },
- data () {
- return {
- isActive: this.active || false
- }
- },
- watch: {
- active (value) {
- this.isActive = value
- }
- }
- }
- </script>
- <style scoped>
- .mask {
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- z-index: 3000;
- transition: opacity .3s linear;
- }
- .full-screen {
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- }
- .spinner {
- position: absolute;
- top: 50%;
- left: 50%;
- text-align: center;
- }
- .fade-enter-active, .fade-leave-active {
- transition: opacity .3s;
- }
- .fade-enter, .fade-leave-to {
- opacity: 0;
- }
- </style>
|