@keyframes scale { 0% { transform: scale(1, 1); opacity: 0.5; z-index: 1; transition: opacity z-index transform 500ms "cubic-bezier(0,1,1,1)"; } 30% { opacity: 1; } 60% { transform: scale(1.05); z-index: 1; opacity: 1; transition: opacity z-index transform 200ms "cubic-bezier(0,1,1,1)" 0.3s; } 80% { transform: scale(1.05); z-index: 1; opacity: 1; transition: opacity z-index transform 200ms "cubic-bezier(0,1,1,1)" 0.3s; } 100% { transform: scale(1.5); z-index: 1; transition: scale 100ms "cubic-bezier(0.5,0,0.2,1)"; } }
实现的播放动画效果
html
<div class="swiper-container banner"> <div class="swiper-wrapper"> <div class="slide" v-for="(item,index) in banners" :key="index" :class="{'active':cur==index}" @click="go(item.url)" :style="{'background':'url('+item.img+')no-repeat','background-size':'cover','background-position':'center center'}" ></div> </div> <!-- 如果需要分页器 --> <div class="page"> <span v-for="(item,index) in banners" :class="{'active':cur==index}" :key="index" @click="cur=index" ></span> </div>
js
this.timer2 = setInterval(() => { this.curs = this.curs <= 3 ? this.curs + 1 : 0; }, 3000);