page, .hc-guide-swiper-page { height: 100%; } .hc-guide-swiper-page { position: relative; width: 100%; .hc-swiper-dot { position: absolute; font-size: 0; left: 45%; bottom: 80rpx; text-align: center; white-space: nowrap; transform: translateX(-50%, 0); .dots { display: inline-block; width: 16rpx; height: 16rpx; border-radius: 50%; background-color: rgba(0, 0, 0, 0.3); transition-property: background-color; transition-timing-function: ease; transition: background-color .3s, width .3s; &.cur { background-color: #000; width: 32rpx; border-radius: 16rpx; } } .dots + .dots { margin-left: 16rpx; } } } .hc-guide-swiper { position: relative; height: 100%; .hc-guide-item { position: relative; height: 100%; display: flex; align-items: center; justify-content: center; .title-box { position: absolute; top: 10%; width: 100%; text-align: center; .title { opacity: 0; color: #101010; font-size: 56rpx; transform-origin: 104rpx 37rpx; animation-duration: 1s; animation-iteration-count: 1; animation-fill-mode: backwards; transition: opacity .5s; } .text { opacity: 0; color: #8e8e93; font-size: 34rpx; margin-top: 22rpx; } } .img-box { position: relative; display: flex; justify-content: center; align-items: center; .img-bg { opacity: 0; transform-origin: 262rpx 222rpx; animation-duration: 1s; animation-iteration-count: 1; animation-fill-mode: backwards; backface-visibility: visible !important; transition: opacity .3s; } .img-1 { opacity: 0; position: absolute; margin-left: -68rpx; margin-top: -80rpx; transform-origin: 155rpx 234rpx; animation-duration: 1s; animation-iteration-count: 1; animation-fill-mode: backwards; } .img-2 { opacity: 0; position: absolute; margin-top: 150rpx; transform-origin: 155rpx 234rpx; animation-duration: 1s; animation-iteration-count: 1; animation-fill-mode: backwards; } .img-3 { opacity: 0; position: absolute; margin-top: 66rpx; margin-right: -160rpx; transform-origin: 155rpx 234rpx; animation-duration: 1s; animation-iteration-count: 1; animation-fill-mode: backwards; z-index: 999999; } } .hc-btn-box { position: absolute; bottom: 12%; width: 600rpx; opacity: 0; transform-origin: 374rpx 1410rpx; animation-delay: 0s; animation-duration: 1.1s; animation-iteration-count: 1; animation-fill-mode: backwards; transition: opacity .3s; } &.animation { .title-box { .title { animation-name: slideInDown; opacity: 1; } .text { opacity: 1; } } .img-box { .img-bg { animation-name: flipInY; opacity: 1; } } &[cur="0"] { .img-1 { animation-name: tada; opacity: 1; } } &[cur="1"] { .img-2 { animation-name: tada; opacity: 1; } } &[cur="2"] { .img-3 { animation-name: tada; opacity: 1; } .hc-btn-box { animation-name: slideInUp; opacity: 1; } } } } } @keyframes slideInDown { 0% { transform: translate3d(0px, -100%, 0px); visibility: visible; } 100% { transform: translate3d(0px, 0px, 0px); } } @keyframes flipInY { 0% { transform: translatez(-100px) perspective(800rpx) rotate3d(0, 1, 0, 90deg); animation-timing-function: ease-in; } 40% { transform: translatez(-100px) perspective(800rpx) rotate3d(0, 1, 0, -20deg); animation-timing-function: ease-in; } 60% { transform: translatez(-100px) perspective(800rpx) rotate3d(0, 1, 0, 10deg); } 80% { transform: translatez(-100px) perspective(800rpx) rotate3d(0, 1, 0, -5deg); } 100% { transform: translatez(-100px) perspective(800rpx); } } @keyframes tada { 0% { transform: scale3d(1, 1, 1); } 10%, 20% { transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } 100% { transform: scale3d(1, 1, 1); } } @keyframes slideInUp { 0% { transform: translate3d(0px, 100%, 0px); visibility: visible; } 100% { transform: translate3d(0px, 0px, 0px); } }