本文实例为大家分享了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实现画板功能相关推荐

  1. 几何画板画椭圆_几何画板降龙十九式视频教程每天只要十分钟

    少侠,请先看几张宝图 图片来自百度搜索做这样神奇的动画难?NononoSoEasy!!!来西偶得一绝世武功秘籍:几何画板[遥想当年,上大学的时候,去上电脑课,得穿了鞋套进机房,机房里蹲着一排排呆头呆脑 ...

  2. java中如何添加画板背景图,在AI中怎么把已知图片在新建画板时候作为画板的背景来建立画板啊!...

    答:把这个要作为背景的图片(例如 A)拖到现在白色画板的中央,然后再在A的上面新建层,那就是以A为背景了. 答:吸引我的,不是它的内容,而是它的背景.这个背景用的是高斯模糊,看上去非常简洁大气. 所以 ...

  3. Javascript的FSO功能

    Javascript的FSO功能 javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼.富有朝气.但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行 ...

  4. Javascript自定义事件功能与用法实例分析

    原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...

  5. 帮助你更好理解javascript中easing功能的网站 - Easings.net

    日期:2012-10-17  来源:GBin1.com 如果你开发过jQuery的动画效果的话,肯定接触过一个jQuery插件:jquery.easing plugin,这个插件可以帮助你生成不同类型 ...

  6. ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能(六)

    目的: 1.ArcGIS.Server.9.3和ArcGIS API for JavaScript实现Identify功能,鼠标点击后获取被点击对象的然后以infoWindow的方式显示点击对象的属性 ...

  7. 在Web中如何运用JavaScript实现打印功能

    <OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0>< ...

  8. 非常不错的一款html5【404页面】,不含js脚本可以左右摆动,原生JavaScript实现日历功能代码实例(无引用Jq)...

    这篇文章主要介绍了原生JavaScript实现日历功能代码实例(无引用Jq),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 成品显示,可左右切换月份 ...

  9. Javascript中暂停功能的实现

    JavaScript实现暂停功能 <meta http-equiv="Content-Type" content="text/html; charset=utf-8 ...

最新文章

  1. NHibernate——Criteria条件查询
  2. 深入理解 Java G1 垃圾收集器--转
  3. 【杂谈】开学重磅!有三AI最强资料固态硬盘开启预订,3本书视频代码PPT,两套教学视频,所有付费专栏代码+数据...
  4. python经典排序_python实现十大经典排序算法
  5. 【JFreeChart】JFreeChart—输出组合图表
  6. 文献阅读(part3)--Self-taught Clustering
  7. show部分书...
  8. 当你伤心时的飞鸽传书
  9. html js 控制span值,根据显示/隐藏span标签/ Javascript组设置span文本?
  10. 吴恩达深度学习4.1练习_Convolutional Neural Networks_Convolution_model_StepByStep_1
  11. pic单片机c语言多路模拟量输入,pic单片机多路ad切换程序介绍
  12. python动态演示数据gdp_荐爬取世界各国历年的GDP数据
  13. Week 10 homework
  14. 模电数电高频电路综合实验成套设备QY-MS535G
  15. 澳洲国立与渥太华计算机科学,山东小伙斩获渥太华电子工程专业及多伦多计算机科学专业录取!...
  16. 想考华为认证HCIP-RoutingSwitching,应该看什么书?
  17. 几个南阳oj的STL题
  18. 美国签证申请中的行政审查制度(图)
  19. 关于java中输出流flush()方法
  20. Netlogon特权提升漏洞

热门文章

  1. MATLAB 数据类型中的结构体类型,及其构造方法
  2. 男人,女人一生要过五个关卡【曾仕强】
  3. OpenCV之阈值化操作总结
  4. java基础之HashMap刨根问底
  5. 基于python的jieba分词
  6. 刚兑换的电子优惠券竟被提前消费,原来是黑客做起倒爷生意
  7. 串口接收不定长数据的几种方式
  8. 解决ping得通IP 但是ping 不通域名的问题
  9. python量化实战 顾比倒数线_顾比倒数线 主图源码
  10. python中图例legend标签内容_matplotlib设置legend图例代码示例