一个朋友让帮忙看一下微信开红包动画怎么实现,用最简单的方法,最简洁的代码来实现,作为一个前端,我决定能用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‘) }