【功能】如何实现卡牌翻转功能
主要使用css3实现卡片翻转效果,关键知识点有:
1、transform: rotateY(0deg/180deg) Y轴旋转
2、transition: name time mode 动画渐变
3、backface-visibility: hidden 图层背面隐藏
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>卡片翻转功能</title> <style> html, body { padding: 0px; margin: 0px; background-color: #1bafd2; } .box { position: relative; margin: 200px auto 0; width: 80px; height: 80px; border-radius: 10px; overflow: hidden; } .front { position: absolute; top: 0; left: 0; z-index: 12; width: 100%; height: 100%; border-radius: 10px; background-color: #2EC7E4; backface-visibility: hidden; /*让背面图案隐藏*/ transform: rotateY(0deg); transition: all 0.3s ease; } .back { position: absolute; top: 0; left: 0; z-index: 10; width: 100%; height: 100%; border-radius: 10px; background-image: url('http://satyr.io/80x80?flag=cze'); background-size: contain; backface-visibility: hidden; transform: rotateY(-180deg); transition: all 0.3s ease; } .box.flip .front { z-index: 10; transform: rotateY(180deg); } .box.flip .back { z-index: 12; transform: rotateY(0deg); } </style> </head> <body> <div class="box"> <div class="front"></div> <div class="back"></div> </div> <script> let box = document.getElementsByClassName('box')[0], key = 0; box.onclick = function () { if (key) { this.className = 'box'; key = 0; } else { this.className = 'box flip'; key = 1; } } </script> </body> </html>
【参考文章】