javascript - 锤子 js - 画布元素上的 panmove
问题描述
我试图在锤子 js 上使用 panmove 事件在画布元素上画一条线。问题是,画布需要坐标开始和坐标去。平移移动事件在鼠标发生任何变化时创建新的 x 和 y(偏移)。问题是当我调用函数时,我只能用相同的 x 和 y 调用她。
如果我可以保存最后一个位置并将其作为第二个参数发送,但我不知道该怎么做。谢谢|!
<div class="canvas-container">
<canvas class ="canvas" width="500" height="400"> </canvas>
</div>
<select onchange="ShapeEvents(this.value)" class="shapes" name="shapes">
<option selected>choose shape</option>
<option value="Line" >Line</option>
</select>
function ShapeEvents(shape) {
if (shape === "Line") getCoords();
}
let gStartPosition;
function getCoords() {
let gHammer = new Hammer(gCanvas);
gHammer.on("panmove", (ev) => {
gStartPosition = ev.center;
drawLine(gStartPosition)
});
function drawLine(startPosition) {
gCtx.moveTo(startPosition.x, startPosition.y);
gCtx.lineTo(startPosition.x, startPosition.y);
gCtx.closePath();
gCtx.stroke();
}
解决方案
推荐阅读
- python - Python - 如何读取应用程序的路径(不知道)
- microcontroller - STM32F429 CAN接收(轮询)不起作用
- javascript - 将一种 JSON 结构转换为另一种
- docker - Docker:访问在 google cloud VM (Ubuntu) 中运行的 webapp
- java - 为什么我的算法不检查链表的最后一个元素?
- spring-boot - 从 Spring Boot 1.x 升级到 Spring Boot 2.x 时面临的问题
- javascript - Django: redirect if url was written manually by user
- javascript - 使用 Javascript 将 div 的内容分成两列
- sapui5 - 如何到达下一行?
- c# - 带有硬编码返回值的三元运算符如何在 LINQ 的 OrderBy 中工作?