
回复
这篇文章的讲述是在上一篇文章(前篇)的基础上进行部分修改,如“上集预告”,本文会对黑白翻棋一些功能的实现采用另一种算法来实现,并且还会对相关知识注解作一个小分享O(∩_∩)O
本文是对上一篇的“实现色块的翻转”采用另一种算法来实现,原文章的实现方法是给这49个色块分别添加一个按钮,并分别添加点击事件获取坐标再传给changeOneGrids,本文讲述的是获取点击的坐标位置然后作一个距离判断是属于7x7数组中的哪一位置,然后再传给changeOneGrids。以下我会先对JS中获取触摸位置的坐标作个知识小分享,再对代码实现部分作个注解。
老规矩,先看文档👇
![]() |
---|
![]() |
![]() |
这里我们要给画布组件canvas添加事件touchstart,在手指刚触摸屏幕时就触发该事件,其参数为TouchEvent,通过表2我们可以知道其对象属性touches包含屏幕触摸点的信息数组,而我们需要的坐标信息就包含在这个数组里;这里我们需要获取到的坐标是相对于组件左上角的,这样也方便我们设置点击范围来触发色块的翻转。代码如下:
index.hml文件:把之前添加的49个按钮组件删掉,然后给canvas修改成以下代码
index.js文件:把之前49个按钮对应的点击事件删掉,然后添加canvas组件的触摸事件,获取触摸位置相对于canvas组件左上角的坐标值
index.css文件:删掉之前49个按钮的布局
设置函数getgrid对坐标值划成对应的行列值,分别赋给变量a和b
以上就是我这次的小分享啦❀❀!