首页 > web前端 > js教程 > 正文

html5+javascript制作简易画板附图_javascript技巧

php中文网
发布: 2016-05-16 16:51:15
原创
1860人浏览过

见图:

html5+javascript制作简易画板附图_javascript技巧 

代码如下:

猫眼课题宝
猫眼课题宝

5分钟定创新选题,3步生成高质量标书!

猫眼课题宝 262
查看详情 猫眼课题宝
复制代码 代码如下:






简易画板



<script> <br><br>var c;//获取到的2d画板 <BR>var painting = false;//判断是否正在绘画,即鼠标左键是否长按下去 <BR>var canvas;//画板 <BR>$(function(){ <br><br>$(".eraseSeries").hide();//初始状态单选按钮组隐藏 <br><br>canvas=document.getElementById("myCanvas"); <BR>c=canvas.getContext("2d"); <BR>c.lineCap="round";//设置笔迹边角,否则笔迹会出现断层 <BR>c.strokeStyle="black";//笔迹的颜色 <BR>c.lineWidth=5;//笔迹的粗细 <BR>$("#color").change(function(){//笔迹颜色发生改变时 <BR>if(eraseFlag==true)//处在擦皮状态 <BR>{ <BR>$("#erase").trigger("click");//自动触发橡皮的点击事件,以返回到画笔状态 <BR>} <BR>c.strokeStyle=$(this).val();//设置画笔状态 <BR>c.lineWidth=$(this).val(); <br><br>}); <br><br>$("#fontSize").change(function(){//画笔粗细发生改变 <BR>if(eraseFlag==true)//同上 <BR>{ <BR>$("#erase").trigger("click"); <BR>} <BR>c.lineWidth=$(this).val(); <BR>c.strokeStyle=$("#color").val(); <BR>//eraseFlag=false; <BR>}); <br><br>$(".eraseSeries").click(function(){//橡皮大小发生改变 <BR>var size=$('input[name="eraseSize"]:checked').val();//获取到橡皮单选按钮组的选中值 <BR>sizeE=size;//将该值传到全局变量上,sizeE需要用来控制橡皮样式的位置 <BR>c.lineWidth=size; <BR>$("#eraseImg").css({"width" :size+"px","height":size+"px"});//橡皮样式大小发生改变 <BR>}); <br><br>$("#erase").toggle(function(){//橡皮按钮的点击翻转事件 <BR>c.save();//保持上次设置的状态 <BR>eraseFlag=true; <BR>c.strokeStyle="white"; <br><br>$("#erase").text("画笔");//改变按钮上的文字 <BR>$(".eraseSeries").show('fast');//橡皮单选组出现 <BR>// $("#eraseImg").show(); <BR>sizeE=5; <br><br><BR>},function(){ <BR>eraseFlag=false; <BR>$("#erase").text("橡皮"); <BR>$(".eraseSeries").hide('fast'); <BR>c.restore();//恢复上次画笔的状态(包括颜色,粗细等) <BR>}); <br><br><BR>//setInterval(paint,2); <br><br>}); <br><br>var p_x;//上次鼠标位置 <BR>var p_y; <BR>var p_x_now;//当前瞬间鼠标位置 <BR>var p_y_now; <BR>var eraseFlag=false; <BR>var sizeE;//橡皮大小 <br><br>$(document).mousedown(function(e){//鼠标按下触发事件 <br><br><BR>// alert(sizeE); <BR>p_x= e.clientX;//获取位置,并置为上次鼠标位置 <BR>p_y= e.clientY; <BR>painting = true;//画笔启动标志 <br><br>}); <BR>$(document).mousemove(function(e){//鼠标移动触发事件 <BR>if(eraseFlag==true&& e.clientY>30)//橡皮处在激活状态,并且鼠标Y的位置大于30,也即鼠标在画板内 <BR>{ <br><br>//橡皮图像跟随鼠标而动 <BR>$("#eraseImg").animate({left: e.clientX-sizeE+"px",top: e.clientY-sizeE+"px"},0).show('fast'); <BR>} <BR>else <BR>{ <BR>$("#eraseImg").hide('fast'); <BR>} <BR>if(painting==true)//处于画笔激活状态 <BR>{ <BR>//alert(1); <BR>p_x_now= e.clientX;//当前瞬间的鼠标位置 <BR>p_y_now= e.clientY; <BR>c.beginPath();//开始路径 <BR>//曲线是由一段段非常小的直线构成,计算机运算速度很快,这是一种以直线迭代画曲线的方式 <BR>c.moveTo(p_x-5-canvas.offsetLeft,p_y-5-canvas.offsetTop);//移动到起始点 <BR>c.lineTo(p_x_now-5-canvas.offsetLeft,p_y_now-5-canvas.offsetTop);//从起始点画直线到终点 <br><br>c.stroke(); <BR>c.closePath();//封闭路径,这个很重要,如果路径不封闭, <BR>// 那么只要canvas颜色发生改变,所有的之前画过的颜色都发生改变 <BR>p_x = p_x_now;//一次迭代后讲当前的瞬间坐标值赋给上次鼠标坐标值 <BR>p_y = p_y_now; <BR>} <br><br>}); <br><br>$(document).mouseup(function(e){//鼠标松开触发事件 <br><br>painting=false;//冻结画笔 <BR>}); <br><br></script>








5
10
15
20
30











相关标签:
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号