html实现画板的基本操作,javascript实现画板功能
本文实例为大家分享了javascript实现画板功能的具体代码,供大家参考,具体内容如下
画板功能的实现
*{
margin: 0;
padding: 0;
list-style: none;
}
body{
background:url(11.jpg) 0 0 no-repeat;
}
.wrapper{
margin: 10px;
}
.wrapper canvas{
border: 1px solid blue;
border-radius:25px;
box-shadow: 10px 10px 5px brown;
margin-bottom: 16px;
background-color: #fff;
}
.wrapper .btn-list{
width: 1000px;
text-align: center;
}
.wrapper .btn-list li{
display: inline-block;
margin-left: 40px;
}
.wrapper .btn-list li input{
background-color: darkgreen;
color: blanchedalmond
border: none;
padding: 6px 13px;
cursor: pointer;
border-radius:25px;
font-size: 18px;
display: block;
transition-duration: 0.2s;
}
.wrapper .btn-list li input:hover{
border: 1px solid chocolate;
box-shadow: 0 12px 15px 0 rgba(0,0,0,0.5);
}
var drawingLineObj = {
cavs:$('.cavs'),
context:$('.cavs').get(0).getContext('2d'),
colorBoard:$('#colorBoard'),
cleanBoard:$('#cleanBoard'),
arrImg:[],
eraser:$("#eraser"),
rescind:$('#rescind'),
lineRuler:$('#lineRuler'),
bool:false,
init:function(){
this.context.lineCap = 'round'; //线条起始与结尾样式
this.context.lineJoin = 'round'; //转弯
this.draw(); //画笔函数
this.btnFn(); //按钮函数
},
draw:function(){
var cavs = this.cavs,
self = this;
var c_x = cavs.offset().left, //canvas离左边的距离
c_y = cavs.offset().top; //canvas离上边的距离
cavs.mousedown(function(e){
e = e||window.event;
self.bool = true;
var m_x = e.pageX - c_x, //鼠标点距离减去canvas离左边的距离等于画布点
m_y = e.pageY - c_y; //鼠标点距离减去canvas离上边的距离等于画布点
self.context.beginPath();
self.context.moveTo(m_x,m_y);//鼠标在画布上的点
var imgData = self.context.getImageData(0,0,self.cavs[0].width,self.cavs[0].height);
self.arrImg.push(imgData);
//console.log(self.arrImg);
})
cavs.mousemove(function(e){
if(self.bool){ //定义一把锁,防止鼠标移开滑动
self.context.lineTo(e.pageX-c_x,e.pageY-c_y);
self.context.stroke(); //绘制出路径
}
})
cavs.mouseup(function(){
self.context.closePath(); //结束自动闭合
self.bool = false; //鼠标不移动时画笔断开
})
cavs.mouseleave(function(){
self.context.closePath(); //结束自动闭合
self.bool = false; //鼠标不移动时画笔断开
})
},
btnFn:function(){
var self = this;
$('.btn-list').on('click',function(e){
e = e||window.event;
switch(e.target.id){ //target
case 'cleanBoard':
self.context.clearRect(0,0,self.cavs[0].width,self.cavs[0].height) //[0]
break
case 'eraser':
self.context.strokeStyle = '#fff'
break
case 'rescind':
if(self.arrImg.length>0){
self.context.putImageData(self.arrImg.pop(),0,0);
break
}
}
})
this.colorBoard.change(function(e){ //当颜色变化时改变字体的颜色
self.context.strokeStyle = $(this).val();
})
this.lineRuler.change(function(e){ //线条的变化值
self.context.lineWidth = $(this).val();
})
}
}
drawingLineObj.init();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
html实现画板的基本操作,javascript实现画板功能相关推荐
- 几何画板画椭圆_几何画板降龙十九式视频教程每天只要十分钟
少侠,请先看几张宝图 图片来自百度搜索做这样神奇的动画难?NononoSoEasy!!!来西偶得一绝世武功秘籍:几何画板[遥想当年,上大学的时候,去上电脑课,得穿了鞋套进机房,机房里蹲着一排排呆头呆脑 ...
- java中如何添加画板背景图,在AI中怎么把已知图片在新建画板时候作为画板的背景来建立画板啊!...
答:把这个要作为背景的图片(例如 A)拖到现在白色画板的中央,然后再在A的上面新建层,那就是以A为背景了. 答:吸引我的,不是它的内容,而是它的背景.这个背景用的是高斯模糊,看上去非常简洁大气. 所以 ...
- Javascript的FSO功能
Javascript的FSO功能 javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行 ...
- Javascript自定义事件功能与用法实例分析
原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...
- 帮助你更好理解javascript中easing功能的网站 - Easings.net
日期:2012-10-17 来源:GBin1.com 如果你开发过jQuery的动画效果的话,肯定接触过一个jQuery插件:jquery.easing plugin,这个插件可以帮助你生成不同类型 ...
- ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能(六)
目的: 1.ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能,鼠标点击后获取被点击对象的然后以infoWindow的方式显示点击对象的属性 ...
- 在Web中如何运用JavaScript实现打印功能
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0>< ...
- 非常不错的一款html5【404页面】,不含js脚本可以左右摆动,原生JavaScript实现日历功能代码实例(无引用Jq)...
这篇文章主要介绍了原生JavaScript实现日历功能代码实例(无引用Jq),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 成品显示,可左右切换月份 ...
- Javascript中暂停功能的实现
JavaScript实现暂停功能 <meta http-equiv="Content-Type" content="text/html; charset=utf-8 ...
最新文章
- NHibernate——Criteria条件查询
- 深入理解 Java G1 垃圾收集器--转
- 【杂谈】开学重磅!有三AI最强资料固态硬盘开启预订,3本书视频代码PPT,两套教学视频,所有付费专栏代码+数据...
- python经典排序_python实现十大经典排序算法
- 【JFreeChart】JFreeChart—输出组合图表
- 文献阅读(part3)--Self-taught Clustering
- show部分书...
- 当你伤心时的飞鸽传书
- html js 控制span值,根据显示/隐藏span标签/ Javascript组设置span文本?
- 吴恩达深度学习4.1练习_Convolutional Neural Networks_Convolution_model_StepByStep_1
- pic单片机c语言多路模拟量输入,pic单片机多路ad切换程序介绍
- python动态演示数据gdp_荐爬取世界各国历年的GDP数据
- Week 10 homework
- 模电数电高频电路综合实验成套设备QY-MS535G
- 澳洲国立与渥太华计算机科学,山东小伙斩获渥太华电子工程专业及多伦多计算机科学专业录取!...
- 想考华为认证HCIP-RoutingSwitching,应该看什么书?
- 几个南阳oj的STL题
- 美国签证申请中的行政审查制度(图)
- 关于java中输出流flush()方法
- Netlogon特权提升漏洞