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