75 lines
1.3 KiB
Vue
75 lines
1.3 KiB
Vue
<!--
|
||
@name: index
|
||
@author: kahu4
|
||
@date: 2023-11-06 18:08
|
||
@description:index
|
||
@update: 2023-11-06 18:08
|
||
-->
|
||
<script setup>
|
||
import { toRefs } from "vue";
|
||
|
||
const props = defineProps({
|
||
text: {
|
||
type: String,
|
||
default: () => '加载中...'
|
||
}
|
||
})
|
||
const {text} = toRefs(props)
|
||
</script>
|
||
|
||
<template>
|
||
<view class="load-over flex flex-ai__center flex-jc__center">
|
||
<view class="line"></view>
|
||
<view class="text-box flex flex-ai__center flex-jc__center">
|
||
<view
|
||
:class="{text:true}"
|
||
:style="{animationDelay: `${index*0.2}s`}"
|
||
v-for="(item,index) in text"
|
||
:key="index"
|
||
>
|
||
{{ item }}
|
||
</view>
|
||
</view>
|
||
<view class="line"></view>
|
||
</view>
|
||
</template>
|
||
|
||
<style
|
||
scoped
|
||
lang="scss"
|
||
>
|
||
.load-over {
|
||
font-size: 28rpx;
|
||
position: relative;
|
||
color: $tips-color;
|
||
|
||
.line {
|
||
width: 130rpx;
|
||
height: 2rpx;
|
||
border-radius: 2rpx;
|
||
background: $tips-color;
|
||
}
|
||
|
||
.text-box {
|
||
@include usePadding(30, 20);
|
||
|
||
.text {
|
||
@include usePadding(5, 0);
|
||
animation: jump 3s ease-in-out infinite;
|
||
}
|
||
}
|
||
}
|
||
|
||
@keyframes jump {
|
||
0%, 60% {
|
||
transform: translateY(0);
|
||
}
|
||
20% {
|
||
transform: translateY(-15rpx);
|
||
}
|
||
40% {
|
||
transform: translateY(15rpx);
|
||
}
|
||
}
|
||
</style>
|