Skip to content

Commit efacfa7

Browse files
committed
adding script wesbos#8
1 parent ddcb8a2 commit efacfa7

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

08 - Fun with HTML5 Canvas/index-START.html

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,59 @@
77
<body>
88
<canvas id="draw" width="800" height="800"></canvas>
99
<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+
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; // stops the fn from running when not mousedown
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+
// ES6 destructuring an array
37+
[lastX, lastY] = [e.offsetX, e.offsetY];
38+
39+
hue++;
40+
if (hue >= 360) {
41+
hue = 0;
42+
}
43+
44+
if(ctx.lineWidth >= 100 || ctx.lineWidth <= 1) {
45+
direction = !direction;
46+
}
47+
48+
if (direction) {
49+
ctx.lineWidth++;
50+
} else {
51+
ctx.lineWidth--;
52+
}
53+
54+
}
55+
canvas.addEventListener('mousedown',(e) => {
56+
isDrawing = true;
57+
[lastX, lastY] = [e.offsetX, e.offsetY];
58+
});
59+
canvas.addEventListener('mousemove',draw);
60+
canvas.addEventListener('mouseup',() => isDrawing = false);
61+
canvas.addEventListener('mouseout',() => isDrawing = false);
62+
1063
</script>
1164

1265
<style>

0 commit comments

Comments
 (0)