关于卡牌翻转,很久以前写过一个,但是没有记录,所以今天碰到同种需求又摸索了会儿。
我的想法是,一个 div 里面两张图片,一个正面,一个反面。
<div class="container"> <image class="cover-image" src="xxx.png" /> <image class="back-image" src="xxx.png" /> </div>
/* 样式 */ .container { width: 204rpx; height: 279rpx; position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; transform-style: preserve-3d; tranform: rotateY(0deg); transition: all 2s; } .cover-image, .back-image { width: 100%; height: 100%; position: absolute; left: 0; top: 0; } .cover-image { transform: rotateY(180deg); transform-origin: center; } .back-image { backface-visibility: hidden; }
然后,在 .container 元素上加一个 transform: rotate(180deg) 属性就可以了。
注意事项
- baceface-visibility 生效的前提是:翻转的元素需要设置 transform-style: preserve-3d
- 小程序有 bug