• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > 使用html5的canvas和JavaScript创建一个绘图程序的示例代码

使用html5的canvas和JavaScript创建一个绘图程序的示例代码

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含html5,canvas,JavaScript等相关知识,匿名希望在学习及工作中可以帮助到您
下面小编就为大家带来一篇用html5的canvas和JavaScript创建一个绘图程序的简单实例。小编觉得挺不错的, 现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文将引导你使用canvas和JavaScript创建一个简单的绘图程序。

首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面。

XML/HTML Code复制内容到剪贴板
<canvas id="canvasInAPerfectWorld" width="490" height="220"></canvas>

获取绘图环境,context对象提供了用于在画布上绘图的方法和属性


context = document.getElementById('canvasInAPerfectWorld').getContext("2d");

开始绘图过程

首先我们需要存储绘图路径点坐标,addClick函数添加坐标点值到数组

var clickX = new Array();   
var clickY = new Array();   
var clickDrag = new Array();//存储路径点 
var paint;//是否绘制,mousedown时置为true 
function addClick(x, y, dragging)   
{   
  clickX.push(x);   
  clickY.push(y);   
  clickDrag.push(dragging);   
}

redraw函数每次调用整个canvas就会重新绘制一次。首先我们清空画布上内容,设置绘制线条颜色粗细线条连接方式。然后

两点之间绘制一段路径,将数组中的坐标点依次绘制出来

function redraw(){   
  context.clearRect(0, 0, context.canvas.width,   context.canvas.height); // 清除画布内容   
  context.strokeStyle = "#df4b26";//设置线条颜色   
  context.lineJoin = "round";//当两条线条交汇时,创建圆形边角   
  context.lineWidth = 5;//线条粗细   
  for(var i=0; i < clickX.length; i++) {           
    context.beginPath();//开始一条路径,或重置当前的路径   
    if(clickDrag[i] && i){   
      context.moveTo(clickX[i-1], clickY[i-1]);   
     }else{   
       context.moveTo(clickX[i]-1, clickY[i]);   
     }   
     context.lineTo(clickX[i], clickY[i]);   
     context.closePath();   
     context.stroke();//绘制路径   
  }   
}

绘制过程需要的事件

1 mousedown事件

绘图这点击到画布上时,将触发该事件执行。调用了addClick函数,并将paint置为true。

$('#canvas').mousedown(function(e){   
  var mouseX = e.pageX - this.offsetLeft;   
  var mouseY = e.pageY - this.offsetTop;   
  paint = true;   
  addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);   
  redraw();   
});



2 mousemove事件

mousedown中设置的paint为true后,鼠标移动时触发mousemove事件执行,将鼠标移动的所有点记录下来,并不断调用redraw重绘画布。

$('#canvas').mousemove(function(e){   
   if(paint){   
     addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);   
     redraw();   
   }   
 });

3 mouseup事件

mouseup鼠标点击后松开或者拖拽后松开,表示绘制完成该路径,将paint置为false。

$('#canvas').mouseup(function(e){   
   paint = false;   
 });

4 mouseleave事件

mouseleave鼠标离开canvas元素,将paint置为false。

$('#canvas').mouseleave(function(e){   
  paint = false;   
});

以上就是使用html5的canvas和JavaScript创建一个绘图程序的示例代码的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03关于6个超炫酷的HTML5电子书翻页动画的详情
  • 2018-12-03有关摇摆的文章推荐
  • 2018-12-03关于HTML5本地存储的相关讲解
  • 2018-12-03HTML5如何解决margin-top的塌陷问题(附代码)
  • 2018-12-03HTML5的WebSocket详解
  • 2017-08-06HTML5 audio标签使用js进行播放控制实例
  • 2018-12-03小强的HTML5移动开发之路(46)——汇率计算器【2】
  • 2018-12-03HTML5属性:select属性的代码实例
  • 2017-08-06HTML5 Video标签的属性、方法和事件汇总介绍
  • 2018-12-035个Java开发人员必须重视HTML5的理由

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5中的事件属性
    • 基于HTML5 Notifications API的消息通知插件
    • HTML5之SVG 2D入门4—笔画与填充_html5教程技巧
    • html 中的 input,怎样触发 iOS 中不同类型的键盘?
    • HTML5多线程JavaScript解决方案Web Worker-专用Worker和共享Worker的详细代码介绍
    • 介绍几个超炫酷的HTML5动画演示及源码的图文详解
    • 使用html5+css3来实现slider切换效果告别javascript+css_html5教程技巧
    • 前端HTML5的几种存储方式
    • HTML5新增属性
    • 如何利用canvas实现按住鼠标移动绘制出轨迹

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有