@@ -9,11 +9,14 @@ const line = document.querySelector("#line");
9
9
const rect = document . querySelector ( "#rect" ) ;
10
10
const circle = document . querySelector ( "#circle" ) ;
11
11
12
+ let dataURL ;
13
+
12
14
function setup ( ) {
13
15
// create a canvas which is full width and height
14
16
createCanvas ( window . innerWidth , window . innerHeight ) ;
15
17
// Add a white background to the canvas
16
18
background ( 255 ) ;
19
+ dataURL = canvas . toDataURL ( ) ;
17
20
}
18
21
19
22
function draw ( ) {
@@ -59,6 +62,7 @@ clear.addEventListener('click', () => {
59
62
paths . splice ( 0 ) ;
60
63
// Clear the background
61
64
background ( 255 ) ;
65
+ dataURL = canvas . toDataURL ( ) ;
62
66
} ) ;
63
67
64
68
@@ -67,6 +71,7 @@ window.onload = () => {
67
71
var ctx = c . getContext ( "2d" ) ;
68
72
let x1 , y1 , x2 , y2 , x3 , y3 ;
69
73
let gradient ;
74
+ let isDown = false ;
70
75
const color2 = document . querySelector ( "#color2" ) ;
71
76
72
77
document . querySelector ( "#gradient" ) . addEventListener ( 'click' , ( ) => {
@@ -81,8 +86,24 @@ window.onload = () => {
81
86
document . querySelector ( "#defaultCanvas0" ) . addEventListener ( "mousedown" , ( e ) => {
82
87
x1 = e . clientX ;
83
88
y1 = e . clientY - 42 ;
89
+ isDown = true
90
+ } ) ;
91
+ document . querySelector ( "#defaultCanvas0" ) . addEventListener ( "mousemove" , ( e ) => {
92
+ if ( isDown ) {
93
+ const image = new Image ( ) ;
94
+ image . src = dataURL ;
95
+ image . addEventListener ( "load" , ( ) => {
96
+ ctx . drawImage ( image , 0 , 0 , window . innerWidth , window . innerHeight ) ;
97
+ } ) ;
98
+ drawing ( e ) ;
99
+ }
84
100
} ) ;
85
101
document . querySelector ( "#defaultCanvas0" ) . addEventListener ( "mouseup" , ( e ) => {
102
+ isDown = false ;
103
+ drawing ( e ) ;
104
+ dataURL = canvas . toDataURL ( ) ;
105
+ } ) ;
106
+ function drawing ( e ) {
86
107
if ( line . checked ) {
87
108
x2 = e . clientX ;
88
109
y2 = e . clientY - 42 ;
@@ -139,5 +160,5 @@ window.onload = () => {
139
160
}
140
161
ctx . fill ( ) ;
141
162
}
142
- } ) ;
163
+ }
143
164
}
0 commit comments