代码如下:
Rumah hujung hadapan web tutorial js html5+javascript制作简易画板附图_javascript技巧

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

May 16, 2016 pm 04:51 PM
html5 papan lukisan

见图:

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

代码如下:

复制代码 代码如下:






简易画板



<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











Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Sempadan Jadual dalam HTML Sempadan Jadual dalam HTML Sep 04, 2024 pm 04:49 PM

Panduan untuk Sempadan Jadual dalam HTML. Di sini kita membincangkan pelbagai cara untuk menentukan sempadan jadual dengan contoh Sempadan Jadual dalam HTML.

HTML jidar-kiri HTML jidar-kiri Sep 04, 2024 pm 04:48 PM

Panduan untuk HTML margin-kiri. Di sini kita membincangkan gambaran keseluruhan ringkas tentang HTML margin-left dan Contoh-contohnya bersama-sama dengan Pelaksanaan Kodnya.

Jadual Bersarang dalam HTML Jadual Bersarang dalam HTML Sep 04, 2024 pm 04:49 PM

Ini ialah panduan untuk Nested Table dalam HTML. Di sini kita membincangkan cara membuat jadual dalam jadual bersama-sama dengan contoh masing-masing.

Susun Atur Jadual HTML Susun Atur Jadual HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Susun Atur Jadual HTML. Di sini kita membincangkan Nilai Susun Atur Jadual HTML bersama-sama dengan contoh dan output n perincian.

Pemegang Tempat Input HTML Pemegang Tempat Input HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Pemegang Tempat Input HTML. Di sini kita membincangkan Contoh Pemegang Tempat Input HTML bersama-sama dengan kod dan output.

Memindahkan Teks dalam HTML Memindahkan Teks dalam HTML Sep 04, 2024 pm 04:45 PM

Panduan untuk Memindahkan Teks dalam HTML. Di sini kita membincangkan pengenalan, cara teg marquee berfungsi dengan sintaks dan contoh untuk dilaksanakan.

Senarai Tertib HTML Senarai Tertib HTML Sep 04, 2024 pm 04:43 PM

Panduan kepada Senarai Tertib HTML. Di sini kami juga membincangkan pengenalan senarai dan jenis Tertib HTML bersama-sama dengan contoh mereka masing-masing

Butang onclick HTML Butang onclick HTML Sep 04, 2024 pm 04:49 PM

Panduan untuk Butang onclick HTML. Di sini kita membincangkan pengenalan, kerja, contoh dan onclick Event masing-masing dalam pelbagai acara.

See all articles