Back to blog list
100行js写一个刮刮乐效果的自定义元素
2021-12-08
Check out the live demo here.
vanillajs写的,具体代码按f12查看吧
创建游戏界面:
克隆一个模板元素的内容。 随机生成奖品文本(SSR、SR、R、恭喜发财或祝您好运)。 将奖品文本添加到隐藏的元素中。
设置画布:
获取canvas元素并设置2D绘图上下文。 绘制灰色背景和"刮开涂层赢大奖"的文字。
实现刮奖功能:
设置鼠标事件监听器(onmousedown、onmousemove、onmouseleave、onmouseenter、onmouseup)。 实现绘制线条的函数drawLine。 使用globalCompositeOperation = 'destination-out'来实现刮开效果。
触摸设备支持:
添加触摸事件监听器(ontouchstart),为移动设备提供支持。
性能优化:
使用锁定机制(locker)来控制绘制频率,避免过于频繁的重绘。
检查刮开程度:
实现checkPick函数(虽然在选中的代码中没有完整显示),用于检查用户刮开的面积。