最近需要一个轮播抽奖。搜索了现有的轮子,有的是用jQuery动画函数实现的,有的是用canvas绘制然后用高频setTimeout调用旋转方法的。前者太老了,不容易移植到vue项目,后者感觉性能可能不太好。还有一些css动画方案,设计加速-匀速-减速三个动画,然后计算偏角让三个动画尽可能无缝衔接,不过感觉应该有更简单轻便的实现方案.个人比较喜欢用transition来实现,但是网上的例子感觉不够好,有些倾斜的文字没有对齐,所以最后自己写了一个。无需jQuery,无需js脚本实现动画细节,动画效果完全连续无连接,支持动态设置任意数量的2个以上奖项。核心思想是利用transition和rotate实现旋转动画,利用transition-origin和rotate绘制定位更精准的轮盘奖励。代码及实例展示
