| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | <template>  <view>    <view class="spinner-inside" :style="{      width: size + 110 + 'px',    }">      <view :style="{ backgroundColor:color }" class="bounce1"></view>      <view :style="{ backgroundColor:color }" class="bounce2"></view>      <view :style="{ backgroundColor:color }" class="bounce3"></view>    </view>  </view></template><script>export default {  name: 'bounce',  props: {    color: String,    size: Number  }}</script><style scoped>.spinner-inside {  margin: 25px auto;  text-align: center;} .spinner-inside > view {  width: 30px;  height: 30px;   border-radius: 100%;  display: inline-block;  -webkit-animation: bouncedelay 1.4s infinite ease-in-out;  animation: bouncedelay 1.4s infinite ease-in-out;  /* Prevent first frame from flickering when animation starts */  -webkit-animation-fill-mode: both;  animation-fill-mode: both;} .spinner-inside .bounce1 {  -webkit-animation-delay: -0.32s;  animation-delay: -0.32s;} .spinner-inside .bounce2 {  -webkit-animation-delay: -0.16s;  animation-delay: -0.16s;} @-webkit-keyframes bouncedelay {  0%, 80%, 100% { -webkit-transform: scale(0.0) }  40% { -webkit-transform: scale(1.0) }} @keyframes bouncedelay {  0%, 80%, 100% {    transform: scale(0.0);    -webkit-transform: scale(0.0);  } 40% {    transform: scale(1.0);    -webkit-transform: scale(1.0);  }}</style>
 |