javascript - 使用 JavaScript 在 Canvas 上描绘一条线

标签 javascript events touch html5-canvas

我正在学习 HTML5,我想学习的示例之一是在 Canvas 上创建 2 个点,我应该能够在这 2 个点之间追踪一条线并将它们连接起来,这应该使用鼠标和移动设备上的触摸事件。

是否有提供这些 API 的任何框架,或者是否有任何我可以查看以开始使用的示例?

最佳答案

window.onload=function(){

var canvas = document.getElementById('canvas');
var ctx=canvas.getContext('2d');
var mouse={x:0,y:0}, down=false, lines=[]

canvas.addEventListener("mousedown",function(e) {
                                    down=true
                                    mouse={x:e.pageX,y:e.pageY}

                },false);

canvas.addEventListener("mousemove",function(e) {
                         this.width=this.width
                         lines.map(function(item){
                          ctx.beginPath()
                          ctx.moveTo(item[0].x, item[0].y);
                          ctx.lineTo(item[1].x, item[1].y);
                          ctx.stroke();
                           })
               if(down){
                   ctx.beginPath();
                   ctx.moveTo(mouse.x, mouse.y);
                   ctx.lineTo(e.pageX-this.offsetLeft, e.pageY-this.offsetTop);
                   ctx.stroke()
                   }

            },false);

canvas.addEventListener("mouseup",function(e) {
                         down=false
                         this.width=this.width
                         lines.push([{x:mouse.x,y:mouse.y},{x:e.pageX-this.offsetLeft,y:e.pageY-this.offsetTop}])
                         lines.map(function(item){
                              ctx.beginPath()
                              ctx.moveTo(item[0].x, item[0].y);
                              ctx.lineTo(item[1].x, item[1].y);
                              ctx.stroke();
                              })
                },false);
}

关于javascript - 使用 JavaScript 在 Canvas 上描绘一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5519061/

相关文章:

android-layout - Dart 中是否有 fastclick 库(或其他解决方案)来消除移动设备上的 300ms 延迟(ghostclick)?

android - TextView 中的触摸坐标

javascript - 当浏览器宽度减小时减小图像宽度

javascript - 如何对多个元素应用jquery悬停

python - Tkinter Checkbutton 和事件回调函数

C# - move 时使表单半透明

javascript - 使用 CSS3 双指缩放

javascript - 从 jquery-json 检索数据到 python

javascript - 尝试在字符串内部使用 FOR 循环。 (JS,jQuery)

c# - .net 中等效的 Treeview.OnChange 事件是什么?