<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="css/main.css"/>
</head>
<body>
<div class="container">
<p id="message"></p>
<div class="cvs-wrap">
<canvas id="cvs" width="600" height="400"></canvas>
</div>
<div class="pencolor" id="pencolor">
<ul>
<li style="background: #000000;">黑</li>
<li style="background: #ffffff;">白</li>
<li style="background: #FF0000;">红</li>
<li style="background: #FF8C00;">橙</li>
<li style="background: #EEEE00;">黄</li>
<li style="background: #7FFF00;">绿</li>
<li style="background: #0000AA;">蓝</li>
<li style="background: #00EE76;">青</li>
<li style="background: #8B4789;">紫</li>
<li onclick="clearimg()">清除</li>
</ul>
</div>
<div class="pensize" id="pensize">
<ul>
<li style="font-size: 1px;">1</li>
<li style="font-size: 2px;">2</li>
<li style="font-size: 3px;">3</li>
<li style="font-size: 4px;">4</li>
<li style="font-size: 5px;">5</li>
<li style="font-size: 6px;">6</li>
<li style="font-size: 7px;">7</li>
<li style="font-size: 8px;">8</li>
<li style="font-size: 9px;">9</li>
<li style="font-size: 16px;">保存</li>
</ul>
</div>
</div> <script type="text/javascript" src="js/main.js"></script>
</body>
</html>

  

*{margin: 0;padding: 0;}
.container{width: 600px; height: 502px; margin: 0 auto;border: 1px solid #ff0000;}
.cvs-wrap{width: 600px;height: 400px;}
.pencolor{width: 600px;height: 50px;border-top: 1px solid #e7e7e7;}
.pensize{width: 600px;height: 50px;border-top: 1px solid #e7e7e7;}
.pencolor li,.pensize li{float: left;list-style: none; width: 60px;height: 50px;text-align: center;line-height: 50px; display: block;}

  

window.onload = function() {
var active = false;
// console.log(pencolor) ;
// console.log(pensize) ; var canvas = document.getElementById("cvs");
var pencolor = document.getElementById('pencolor').getElementsByTagName('li');
var pensize = document.getElementById('pensize').getElementsByTagName('li');
var cxt = canvas.getContext("2d"); canvas.onmousedown = function(event) {
active = true;
//获取x
x = event.clientX - canvas.offsetLeft;
//获取y
y = event.clientY - canvas.offsetTop;
// console.log(x, y);
}
canvas.onmousemove = function(event) {
if(active == true) {
//获取x
x2 = event.clientX - canvas.offsetLeft;
//获取y
y2 = event.clientY - canvas.offsetTop;
console.log(x2, y2, active);
cxt.beginPath();
cxt.moveTo(x, y);
cxt.lineTo(x2, y2);
cxt.strokeStyle = color;
cxt.lineWidth =size;
cxt.lineCap="round";
cxt.stroke();
cxt.closePath();
x = x2;
y = y2;
}
}
canvas.onmouseup = function() {
active = false;
} for(var i = 0; i < pencolor.length; i++) {
var color="rgb(0,0,0)";
pencolor[i].onclick = function() {
// console.log(pencolor);
color = this.style.backgroundColor;
// console.log(color);
return color;
alert(color);
} } for(var j = 0; j < pencolor.length; j++) {
var size="1px";
pensize[j].onclick = function() {
// console.log(pencolor);
size = this.innerHTML;
// console.log(size);
return size;
console.log(size);
}
} }

  

canvas 画板的更多相关文章

  1. QML学习笔记(二)-纯qml画图实现canvas画板-鼠标画图

    作者: 狐狸家的鱼 Github: 八至 版权声明:如需转载请获取授权和联系作者 用纯qml实现canvas画板功能,用鼠标进行画图,可以画直线,画圆,画矩形,画弧线. 由于canvas画图会有延迟和 ...

  2. canvas——画板

    注意部分: canvas的height和width不能再css中设定,应该在html中设定,否则会影响页面的分辨率. 效果图: 图1: 代码 css: #canvas{ cursor: crossha ...

  3. 简易的canvas画板

    没事仿照windows画板工具用canvas实现了一个简易版的画板. html: <!doctype html> <html> <head> <meta ch ...

  4. html5 canvas画板

    点击查看演示地址 <!DOCTYPE HTML> <html> <title>HTML5-CanvasDrawDemo</title> <meta ...

  5. html5 canvas 画板

    <!doctype html> <head> <meta http-equiv="Content-Type" content="text/h ...

  6. JS canvas 画板 撤销

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. Canvas画板

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA6QAAAGgCAIAAAAy0z21AAAgAElEQVR4nO3dfYwkZ30n8JqZfcNex8

  8. canvas画板基础应用的学习

    canvas是html5中的绘图容器,我们可以通过javascript的控制来进行图形的绘制,绘制对象可以是路径.盒.圆.字符等,同时,你也可以通过js给画布添加图像,下面来介绍canvas的各种基本 ...

  9. canvas实践小实例一 —— 画板工具

    前面讲了一部分的canvasAPI的基础知识,光看API的介绍确实是很无趣乏味,需要一点可以激发内心的激情的东西来激励自己来学习,于是就了伴随canvasAPI学习的小实例,这样通过API的知识,结合 ...

随机推荐

  1. LeetCode:Multiply Strings

    题目链接 Given two numbers represented as strings, return multiplication of the numbers as a string. Not ...

  2. C/C++实践笔记 005

    整型常量int a=101u; 无符号整数int b=102l; 长整数int c=103ll; long long整数 存储qq号,手机号 010八进制 0x10十六进制 嵌入式的场合经常用shor ...

  3. 【跟着子迟品 underscore】JavaScript 中如何判断两个元素是否 "相同"

    Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...

  4. php中关于引用(&)详解

    php中关于引用(&)详解 php的引用(就是在变量或者函数.对象等前面加上&符号) 在PHP 中引用的意思是:不同的变量名访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的 ...

  5. JavaScript语法规范

    推荐的JavaScript编码规范 阅读 247 评论 0 喜欢 0 作为前端开发人员,我相信每一个人都或多或少的用到原生的JavaScript,也正是因为用的人多,导致编码风格也是多种多样的,而不规 ...

  6. SetEnvlfNoCase 记录从自己网站之外传来的请求

    <FilesMatch \.(jpg|gif|png)$> SetEnvIfNoCase Referer "^http://www.example.com/" loca ...

  7. 中软培训第一周复习总结 --简单的HTML 与CSS

    一些需要记住的点: day1 HTML格式及简单标签: html 文件一般格式: 1 <html> 2 <head lang="en"> 3 <met ...

  8. R语言读取本地文件注意事项

    R里面应该用/,而不是\ ,或者用两个\\   R区分大小写,所以应该用C:,而不是c:

  9. 将DataTable生成树json

    protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ListMenu(); } } protected ...

  10. Unity3D游戏在iOS上因为trampolines闪退的原因与解决办法

    http://7dot9.com/?p=444 http://whydoidoit.com/2012/08/20/unity-serializer-mono-and-trampolines/ 确定具体 ...