File tree Expand file tree Collapse file tree 1 file changed +54
-0
lines changed
08 - Fun with HTML5 Canvas Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Original file line number Diff line number Diff line change 7
7
< body >
8
8
< canvas id ="draw " width ="800 " height ="800 "> </ canvas >
9
9
< script >
10
+ const canvas = document . querySelector ( '#draw' ) ;
11
+ const ctx = canvas . getContext ( '2d' ) ;
12
+ canvas . width = window . innerWidth ;
13
+ canvas . height = window . innerHeight ;
14
+ ctx . strokeStyle = '#BADA55' ;
15
+ ctx . lineJoin = 'round' ;
16
+ ctx . lineCap = 'round' ;
17
+ ctx . lineWidth = 100 ;
18
+ // ctx.globalCompositeOperation = 'multiply';
19
+
20
+ let isDrawing = false ;
21
+ let lastX = 0 ;
22
+ let lastY = 0 ;
23
+ let hue = 0 ;
24
+ let direction = true ;
25
+
26
+ function draw ( e ) {
27
+ if ( ! isDrawing ) return ; // stop the fn from running when they are not moused down
28
+ console . log ( e ) ;
29
+ ctx . strokeStyle = `hsl(${ hue } , 100%, 50%)` ;
30
+ ctx . beginPath ( ) ;
31
+ // start from
32
+ ctx . moveTo ( lastX , lastY ) ;
33
+ // go to
34
+ ctx . lineTo ( e . offsetX , e . offsetY ) ;
35
+ ctx . stroke ( ) ;
36
+ [ lastX , lastY ] = [ e . offsetX , e . offsetY ] ;
37
+
38
+ hue ++ ;
39
+ if ( hue >= 360 ) {
40
+ hue = 0 ;
41
+ }
42
+ if ( ctx . lineWidth >= 100 || ctx . lineWidth <= 1 ) {
43
+ direction = ! direction ;
44
+ }
45
+
46
+ if ( direction ) {
47
+ ctx . lineWidth ++ ;
48
+ } else {
49
+ ctx . lineWidth -- ;
50
+ }
51
+
52
+ }
53
+
54
+ canvas . addEventListener ( 'mousedown' , ( e ) => {
55
+ isDrawing = true ;
56
+ [ lastX , lastY ] = [ e . offsetX , e . offsetY ] ;
57
+ } ) ;
58
+
59
+
60
+ canvas . addEventListener ( 'mousemove' , draw ) ;
61
+ canvas . addEventListener ( 'mouseup' , ( ) => isDrawing = false ) ;
62
+ canvas . addEventListener ( 'mouseout' , ( ) => isDrawing = false ) ;
63
+
10
64
</ script >
11
65
12
66
< style >
You can’t perform that action at this time.
0 commit comments