You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<!-- @auth kahu --> <template> <view class="loading_box mask flex-center" @touchmove.stop.prevent="HandlePageMove"> <!-- 点动画 --> <view class="dot_box theOuterRotation" v-if="false"> <view class="dot_item" v-for="item in 4"></view> </view>
<!-- 进度条动画 --> <view class="progress_box" v-if="false"> <view class="progress_item progress_roll_center"></view> </view> Loading.... </view> </template>
<script> export default { name: "index", data() { return {}
}, onPageScroll(e) { return false },
mounted() { console.log(getCurrentPages()) //#ifdef H5
//#endif
},
methods: { HandlePageMove() { return false } } } </script>
<style lang="scss" scoped> .mask { width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.5); color: #fff; }
.flex-center { display: flex; align-items: center; justify-content: center; flex-direction: column; }
.loading_box { width: 100vw; height: 100vh; position: fixed; top: 0; bottom: 0; z-index: 9999;
/** 点动画*/ .theOuterRotation { animation: rotate 2s ease-in-out .5s infinite normal; }
.dot_box { width: 80rpx; height: 80rpx; //background: #fff;
border-radius: 20rpx; margin: 20rpx 0; position: relative;
// 原始dot
.dot_item { width: 30rpx; height: 30rpx; background: #fff; border-radius: 50%; position: absolute; transition: all .6s; box-shadow: 0 0 2rpx #b4b4b4;
&:nth-child(1) { top: 0; left: 0; }
&:nth-child(2) { top: 0; right: 0; }
&:nth-child(3) { bottom: 0; right: 0; }
&:nth-child(4) { bottom: 0; left: 0; } }
// 单双放大动画
.dot_scale { &:nth-child(1) { top: 0; left: 0; animation: magnify 2s ease-in-out 0s infinite alternate; }
&:nth-child(2) { top: 0; right: 0; animation: magnify 2s ease-in-out 1s infinite alternate; }
&:nth-child(3) { bottom: 0; right: 0; animation: magnify 2s ease-in-out 0s infinite alternate; }
&:nth-child(4) { bottom: 0; left: 0; animation: magnify 2s ease-in-out 1s infinite alternate; } }
// 单点移动动画
.dot_move { &:nth-child(1) { z-index: 2; animation: moveDot 2s ease-in-out 0s infinite normal; } }
// 单偶放大
@keyframes magnify { 0% { transform: scale(1); background: rgba(0, 255, 228, 0.82); } 25% { background: #32b5cc; } 50% { transform: scale(1.4); background: #73e34e; } 75% { background: #0ec469; } 100% { transform: scale(1); background: #868686; } }
// 移动单点
@keyframes moveDot { 0% { top: 0; left: 0; background: #d0f598; } 25% { top: 0; left: 100%; transform: translateX(-100%); background: #f5e298; } 50% { top: 100%; left: 100%; transform: translate(-100%, -100%); background: #6bea91; } 75% { top: 100%; left: 0; transform: translateY(-100%); background: #e84c7a; } 100% { top: 0; left: 0; }
}
@keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } }
/** 进度条动画*/ .progress_box{ width: 300rpx; height: 25rpx; margin: 20rpx 0; border-radius: 25rpx; background-color: #fff; position: relative; overflow: hidden; .progress_item{ width: 0%; height: 100%; background: #f68686; border-radius: 25rpx;
} .progress_roll{ animation: roll 1s ease-in-out 0s infinite alternate-reverse; } .progress_roll_center{ width: 5%; transition: all .6s; margin: 0 auto; animation: roll 1s cubic-bezier(.15,.2,.05,.4) 0s infinite alternate-reverse; } }
@keyframes roll { from{ width: 5%; } to{ width: 100%; } }
} </style>
|