一個朋友讓幫忙看一下微信開紅包動畫怎么實現,用最簡單的方法,最簡潔的代碼來實現,作為一個前端,我決定能用css來實現的動畫就不用js
html代碼,我簡單用兩個div來代替,實現微信動畫就把兩個div放2張圖片
1 <div class="box-out"> 2 <div class="inner"></div> 3 <div class="inner2"></div> 4 </div>
css代碼
.box-out {
border: 3px solid black;
width: 80px;
height: 100px;
margin: 100px auto;
position: relative;
border-radius: 10px;
}
.inner,
.inner2 {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 80px;
height: 100px;
border-radius: 6px;
backface-visibility: hidden;
/* 不面對屏幕時不可見 */
}
.inner {
background-color: red;
}
.inner2 {
background-color: blue;
transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
}
.box-out.move {
animation: 3s move infinite;
transform-style: preserve-3d;
}
@keyframes move {
0% {
transform: rotateY(0deg);
-webkit-transform: rotateY(0deg);
}
100% {
transform: rotateY(360deg);
-webkit-transform: rotateY(360deg);
}
}
然后給父級div加一個點擊事件,就可以了
var inner = document.getElementsByClassName('box-out')[0]; inner.addEventListener('click', () => { inner.classList.add('move') }