<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>Title</title>
</head>
<body>
<canvas id='cas' style="border:1px solid red" width='600' height='400'></canvas>
<div>
<input type="button" value="蓝色" onclick="blue()"/>
<input type="button" value="绿色" onclick="green()"/>
<input type="button" value="粉色" onclick="pink()"/>
<select name="" id="" onchange="change(this)">
<option value="1">1px</option>
<option value="4">4px</option>
<option value="8">8px</option>
<option value="20">20px</option>
</select>
<input type="button" value="清空画布" onclick="clearCas()">
</div>
<script> //手写输入!!
var cas = document.getElementById( 'cas' );
var context = cas.getContext( '2d' );
var mouseDown = false;//定义一个参数判断鼠标是否按下
var points = [];//定义一个数组存放鼠标不停移动时的坐标
// 添加鼠标移动事件
cas.addEventListener( 'mousemove', function ( e ) {//鼠标移动事件
// 注册按下与抬起的事件
cas.addEventListener( 'mousedown',function () {//鼠标按下事件
mouseDown = true;
});
cas.addEventListener( 'mouseup',function () {//鼠标抬起事件
mouseDown = false; });
if ( mouseDown ) {
points.push( { x: e.offsetX, y: e.offsetY } );
// 不断的刷新, 绘制
context.beginPath();//开启新的绘制
// 绘图
context.moveTo( points[ 0 ].x, points[ 0 ].y );//起始位置
// 循环 lineTo
for ( var i = 1; i < points.length; i++ ) {
context.lineTo( points[ i ].x, points[ i ].y );
}
context.stroke();//描边
} else {
points = [];
}
});
/*选择画笔颜色 */
function blue(){ context.strokeStyle="blue";//画笔颜色改为蓝色
}
function green(){
context.strokeStyle="green";
}
function pink(){
context.strokeStyle='pink';
}
/*选择画笔粗细*/
function change(dom){
context.lineWidth=dom.value-0;
}
/*清空画布*/
function clearCas(){
context.clearRect(0,0,cas.width,cas.height);
}
</script>
</body>
</html>

  

canvas简单画图板的更多相关文章

  1. Html5用Canvas制作画图板

    需求: 绘制多边形 可填充颜色 可设置文字 可移动,可删除 鼠标按住后,抬起之前线段应该尾随鼠标当前位置 可与后台方便的进行数据交互,保存到后台,或将数据从后台取到前台显示对应的图形 思考: 第一想到 ...

  2. (转)第02节:在Canvas上画简单的图形

    我们现在已经可以在HTML中使用Fabric.js库了,那这节我们就详细的学习一下如何在canvas上画出简单的图形. 在画东西之前我们需要了解画任何东西的基本三个步骤: 声明画布(canvas),用 ...

  3. 很值得学习的java 画图板源码

    很值得学习的java 画图板源码下载地址:http://download.csdn.net/source/2371150 package minidrawpad; import java.awt.*; ...

  4. 【示例代码】HTML+JS 画图板源码分享

    一个有趣的画图板, 用了 HTML5中的本地存储.下载.canvas 等技术,这个项目中用到了canvas 的很多基础功能,初学者可以学习一下 . 建议开发童鞋使用统一开发环境UDE来进行查看.调试. ...

  5. Java版简易画图板的实现

    Windows的画图板相信很多人都用过,这次我们就来讲讲Java版本的简易画板的实现. 基本的思路是这样的:画板实现大致分三部分:一是画板界面的实现,二是画板的监听以及画图的实现,三是画板的重绘.(文 ...

  6. 使用JavaScript在Canvas上画出一片星空

    随着Html5的迅猛发展,画布也变得越来越重要.下面我就写一个关于在canvas上画出一片星空的简单的代码的示例. 理论基础 初始化一个canvas,获得一个用于绘制图形的上下文环境context.并 ...

  7. Java编写画图板程序细节-保存已画图形

    没有Java编写画图板程序细节-保存已画图形   一.为何我们要保存画图板上已画图形呢? 有很多人会问,为什么我们一定要保存画图板上已经画好了的图形呢?原因很简单.当我们在画图板上画完自己想画的图形后 ...

  8. wxPython 画图板

    终于开始Python学习之旅了,姑且以一个“画图板”小项目开始吧.放慢脚步,一点一点地学习. 1月28日更新 第一次遇到的麻烦便是“重绘”,查了好多资料,终于重绘成功了. #-*- encoding: ...

  9. Java 从零开始实现一个画图板、以及图像处理功能,代码可复现

    Java 从零开始实现一个画图板.以及图像处理功能,代码可复现 这是一个学习分享博客,带你从零开始实现一个画图板.图像处理的小项目,为了降低阅读难度,本博客将画图板的一步步迭代优化过程展示给读者,篇幅 ...

随机推荐

  1. 深度学习大规模MIMO中的功率分配

    摘要-本文使用深度学习的方法在大规模MIMO网络的下行链路中执行max-min和max-prod功率分配.更确切地说,与传统的面向优化的方法相比,训练深度神经网络来学习用户设备(UE)的位置和最优功率 ...

  2. Python 学习笔记13 类 - 创建和简单使用

    介绍: 面向对象编程是一种非常有效的软件编写方法之一,在面向对象编程中,我们会编写表示现实世界中的事物或者情景的类,并基于类来创建对象. 在编写类的的时候,这些类对象一般都有通用的行为或者属性.基于类 ...

  3. a标签的锚点链接

    <a href="#creditor" class="clearfix nav_creditor"> <div class="sec ...

  4. cygwin的用途

    cgywin简介 打开cygwin的官方网站(www.cygwin.com),一行英文非常醒目:Get that Linux feeling – on Windows! 简而言之,cygwin是一个在 ...

  5. JS设置首字母大写算法

    返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写. 像'the'和'of'这样的连接符同理. function titleCase(str) { //把字符串所有的字母变为小写,并根据空 ...

  6. Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新

    为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码--客户资料表 create table customers ( customer_id numbe ...

  7. linuxprobe培训第3节课笔记2019年7月7日

    linux常用命令: echo:在终端输出字符串或变量提取后的值 date:显示及设置系统的时间或日期 reboot:重启 poweroff:关机 wget:下载 ps:查看系统中的进程状态(常用参数 ...

  8. 2019牛客暑期多校训练营(第三场)I Median

    题意:给出n-2的中位数序列b,b[i]代表原序列中(a[i],a[i+1],a[i+2])的中位数,求a. 解法:比赛的时候没做出来,赛后看题解的.解法跟网上各位大佬一样:首先要证明其实原序列a中的 ...

  9. 第5篇K8S创建资源的两种方式

      一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令直接创建,比如: kubectl run httpd-app --image=r ...

  10. 自从学会了 Array.reduce() ,再也离不开它

    (转载)原文链接:https://juejin.im/post/5dfd9d27e51d455825129ec3   在所有后 ES6 时代的数组方法中,我觉得最难理解的就是Array.reduce( ...