キャンバスの描画ボード

今週はキャンバスを学んでいます 

キャンバスは、同様のキャンバス内に埋め込まれた埋め込み要素であります 

製図板は、あまりにもマウスでキャンバスに描くことができています 

そして、あなたは線の太さの色を変更する必要があります 

クリア描画ボード三つの小さな機能

 

 

注意点 

あなたは、現在のマウス位置を取得する必要があります 

我々は、マウスの位置と対応する描画ボードを取得する必要があるときにマウスクリックをしたとき

位置左の位置は、マウスの位置とページを取得event.clientXノート  

位置にあるcanvas要素はoffsetLeftページを取得するとき  

これは、キャンバス要素でマウスに2つの位置を減算することにより得られます。 

 

あなたは、イベントが影響したクリアする必要があるときに、マウスを持ち上げ

1  <!DOCTYPE HTML > 
2  < HTML のlang = "EN" > 
3  
4  < ヘッド> 
5      < メタのcharset = "UTF-8" > 
6      < メタ= "ビューポート" コンテンツ= "幅=デバイス幅、初期スケール= 1.0 " > 
7      < メタHTTP-当量=" X-UA-互換」コンテンツ= "IE =縁" > 
8      < タイトル> 画布
 9  
10      <
     スタイル> 
12          #myCan { 
13              境界1ピクセル固体
14          } 
15  
16          .color { 
17              表示インラインブロック
18  25ピクセル
19              高さ25ピクセル; 
20              マージン0 5pxの; 
21          } 
22      </ スタイル> 
23  </ ヘッド> 
24  
25  <本体> 
26      < キャンバスID = "myCan" = "500" 高さ= "500" > </ キャンバス> 
27      < DIV > 
28          < ボタンのonclick = "clearCanvas()" スタイル= "フロート:左;" >清除画布</ ボタン> 
29          < divのクラス= "色" スタイル= "背景色:赤;" onclickの= "changeColor( '赤')" > </ DIV >
         スタイル=「背景色:青;」onclickの= "changeColor( '青')" > </ DIV > 
31          < DIV クラス= "色" スタイル= "背景色:黒;" onclickの= "changeColor( 'ブラック')" > </ DIV > 
32          < DIV クラス= "色" スタイル= "背景色:緑;" onclickの= "changeColor( 'グリーン')" > </ DIV > 
33          < DIV クラス= "色" スタイル=「背景色:黄色;」onclickの= "changeColor( '黄色')"> </ DIV > 
34          < DIV クラス= "色" スタイル= "背景色:白;" onclickの= "changeColor( '白')" > </ DIV > 
35          < 入力タイプ= "範囲" ID = "範囲" スタイル= "マージン左:10pxの;" = "1" 最大= "10" のonchange = "changeWidth(this.value)" > 
36      </ DIV > 
37      < スクリプト>
 myCan " );
 39          // はconsole.log(C); 
40  
41          VARのペン= c.getContext(' 2D ' );
 42          にconsole.log(PEN);
 43          LET色= document.getElementsByClassName(" カラー);
 44          pen.lineWidth =  5 ;
 45  
46          c.onmousedown =  関数(E){
 47              VARのEV = E || window.event;
 48  
49             pen.beginPath();
50              はconsole.log(" 1 " )。
51              pen.moveTo(ev.clientX - c.offsetLeft、ev.clientY - c.offsetTop)。
52              document.onmousemove =  関数(){
 53                  VAR EV = EV || window.event;
54                  pen.lineTo(ev.clientX - c.offsetLeft、ev.clientY - c.offsetTop)。
55                  pen.stroke()。
56                  // はconsole.log( "1")。
57             }。
58          }。
59          pen.closePath()。// 端绘画路径
60  
61          c.onmouseup =  関数(){
 62              document.onmousedown =  NULL ;
63              document.onmousemove =  NULL ;
64          }
 65  
66          LETのclearCanvas =  関数(){
 67              // c.clearRect(0,0、c.width、c.height)。
68              pen.clearRect(0 0 500500 )。
69          }
 70          changeColorせ=  関数(STR){
 71              pen.strokeStyle = STRと、
72              のために(LET I =  0 ; iは< ; color.length iは++ ){
 73                  色[I] .style.boxShadow =  "" ;
74              }
 75              event.target.style.boxShadow =  " 0 0 8px黒" 76          }
 77  
78          機能changeWidth(I){
 79              pen.lineWidth = I。
80              にconsole.log(pen.lineWidth)。
81          }
 82      </ スクリプト> 
83  </ ボディ> 
84  
85  </ HTML >

 

おすすめ

転載: www.cnblogs.com/ATnTention/p/11503101.html