这是一个用javascript 在canvas 上实现的简单的画图应用,用支持html5 的浏览器便可在下面的区域进行绘画:

您的浏览器不支持canvas!

功能很简单,原理其实和拖放是类似的,主要是三个事件:

1. 在canvas 上绑定mousedown 事件以标志绘画的开始(调用moveTo 移动画笔)

2. 在document 上绑定mousemove 事件来处理绘画时的行为(调用lineTo 以及stroke 进行绘画)

3. 在document 上绑定mouseup 事件以标志绘画的结束(解绑document 上的两个事件)

实现时需特别注意的一点是调用moveTo 以及lineTo 方法时如何传递正确的坐标值,这个坐标值应该是光标相对于canvas 左上角的偏移量,获取时需要把canvas 相对于当前视口的位置考虑进去,getBoundingClientRect 方法则正好派上了用场(支持HTML5 的浏览器应该都实现了这个方法),最后用event 对象的clientX,clientY 减去getBoundingClientRect 方法返回的left,top 值即可。

就这样一个简单的鼠绘功能就完成了,不足之处也有,比如不能够画点。。。 我个人觉得用canvas 来做画图还是比较弱的,复杂一些的功能就不太好实现了,不过大家也可以尝试下哦,比如要添加个保存图片的方法,定义Draw.prototype.save = function() {...},其中可调用toDataURL 方法实现。

这里有个不错的HTML5 canvas 教程可供初学者学习~

draw demo您的浏览器不支持canvas!
如不能显示效果,请按Ctrl+F5刷新本页,更多网页代码: http://www.wfuyu.com/

提示:仅在IE9、Chrome和Firefox下有效!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐