今天学习了canvas,利用它做了一个简易版的画板,校验自己所学的知识,分享出来以供大家学习指教。先上效果图。

主要是使用了canvas的stroke和clearReact来实现画板的绘画和橡皮擦功能,然后通过监听鼠标的按下、移动、弹起事件,完成绘画及擦除功能。直接上才艺代码

html:

在这里的代码看不到,不支持canvas的浏览器可以看到

css:

body {

}

#c1 {

}

.active {

}

javascript:

var oC = document.getElementById(‘c1’) //获取canvas容器
var ctx = oC.getContext(‘2d’) //生成画笔
var num = 0; //通过num的值,判断是画笔还是橡皮擦
var aInput = document.getElementsByTagName(‘input’); //获取按钮dom元素

for (var i = 0; i < aInput.length; i++) {
aInput[i].index = i //给dom元素添加自定义属性
aInput[i].onclick = function () {
for (var i = 0; i < aInput.length; i++) {
aInput[i].className = ‘’ //将class清空
}
this.className = ‘active’ //点击的按钮样式置为active
num = this.index //更改状态
}
}

oC.onmousedown = function (e) {
var x = e.pageX - oC.offsetLeft; //获取坐标x值
var y = e.pageY - oC.offsetTop; //获取坐标y值
ctx.beginPath();
ctx.moveTo(x, y)
oC.onmousemove = function (e) {
var x = e.pageX - oC.offsetLeft;
var y = e.pageY - oC.offsetTop;
if (num == 0) {
ctx.lineTo(x, y);
ctx.stroke();
} else if (num == 1) {
ctx.clearRect(x, y, 20, 20)
}
}
oC.onmouseup = function (e) {
oC.onmousemove = null;
oC.onmouseup = null;
ctx.closePath();
}
}

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/118612183

最新文章

  1. [原]HAproxy 代理技术原理探究
  2. 开放api接口签名验证
  3. canvas生成二维码,并下载保存为本地的图片
  4. EBS excel模板xml publisher开发
  5. Git 查看文件的历史
  6. 27个提升效率的iOS开源库推荐
  7. prob
  8. mvn使用问题
  9. 1. 走进java
  10. Web Service学习之五:WSDL详解
  11. myeclipse2015不能启动tomcat,提示: Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at local
  12. ASP.NET 使用mode=”InProc”方式保存Session老是丢失,无奈改成StateServer 模式。
  13. 1、第1课.net学习2150916
  14. Grunt构建工具插件篇——之less工具3和watch配合自动化编译
  15. BZOJ 2463: [中山市选2009]谁能赢呢?(新生必做的水题)
  16. nginx模块,模块的配置使用
  17. IIS部署asp.net mvc网站
  18. Course1-Python数据类型总结
  19. servlet数据库验证登录
  20. 第五讲 smart qq poll包处理 以及 私聊 群聊消息收发

热门文章

  1. Jenkins 从小白入门到企业实践打怪放弃之路系列笔记 【持续集成与交付快速入门必备】
  2. 2021.08.05 P5357 康托展开模板(康托展开)
  3. git-config配置多用户环境以及 includeIf用法
  4. [AcWing 788] 逆序对的数量
  5. 【Azure Developer】使用 adal4j(Azure Active Directory authentication library for Java)如何来获取Token呢
  6. linux系统如何查看内核版本、操作系统版本等信息
  7. iNeuOS工业互联网操作系统,数据点、设备和业务的计算与预警
  8. 不懂 Zookeeper?来看看这篇文章
  9. Linux下高效实用的grep命令
  10. XPath语法和lxml模块