add: base files
This commit is contained in:
commit
4d70b47308
29
index.html
Normal file
29
index.html
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="pl">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Strona z ciekawym wykorzystaniem JS</title>
|
||||||
|
<link rel="stylesheet" href="style.css"/>
|
||||||
|
<script defer src="script.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="menu">
|
||||||
|
<select id="color">
|
||||||
|
<option value="green">Zielony</option>
|
||||||
|
<option value="red">Czerwony</option>
|
||||||
|
<option value="yellow">Żółty</option>
|
||||||
|
<option value="orange">Pomarańczowy</option>
|
||||||
|
<option value="gray">Szary</option>
|
||||||
|
<option value="black">Czarny</option>
|
||||||
|
<option value="lime">Limonkowy</option>
|
||||||
|
</select>
|
||||||
|
<input type="range" min="5" max="40" value="5" id="weight"/>
|
||||||
|
<button id="clear">Wyczyść rysunek!</button>
|
||||||
|
</div>
|
||||||
|
<canvas id="canvas"></canvas>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
56
script.js
Normal file
56
script.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
document.addEventListener('contextmenu', event => event.preventDefault());
|
||||||
|
document.addEventListener('mousedown', startPainting);
|
||||||
|
document.addEventListener('mouseup', stopPainting);
|
||||||
|
document.addEventListener('mousemove', draw);
|
||||||
|
window.addEventListener('resize', resize);
|
||||||
|
|
||||||
|
const colorSelector = document.getElementById('color');
|
||||||
|
const weightSlider = document.getElementById('weight');
|
||||||
|
const clearButton = document.getElementById('clear');
|
||||||
|
const canvas = document.getElementById('canvas');
|
||||||
|
const ctx = canvas.getContext('2d');
|
||||||
|
|
||||||
|
let color = 'green';
|
||||||
|
let weight = 5;
|
||||||
|
|
||||||
|
clearButton.addEventListener('click', () => ctx.clearRect(0, 0, canvas.width, canvas.height))
|
||||||
|
weightSlider.addEventListener('change', e => weight = e.target.value)
|
||||||
|
colorSelector.addEventListener('change', e => color = e.target.value)
|
||||||
|
resize();
|
||||||
|
|
||||||
|
function resize() {
|
||||||
|
ctx.canvas.width = window.innerWidth;
|
||||||
|
ctx.canvas.height = window.innerHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
let lastPos = { x: 0, y: 0 };
|
||||||
|
let paint = false;
|
||||||
|
|
||||||
|
function getPosition(event) {
|
||||||
|
lastPos.x = event.clientX - canvas.offsetLeft;
|
||||||
|
lastPos.y = event.clientY - canvas.offsetTop;
|
||||||
|
}
|
||||||
|
|
||||||
|
function startPainting(event) {
|
||||||
|
paint = true;
|
||||||
|
getPosition(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
function stopPainting() {
|
||||||
|
paint = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function draw(event) {
|
||||||
|
if (!paint) return;
|
||||||
|
|
||||||
|
ctx.beginPath();
|
||||||
|
ctx.lineWidth = weight;
|
||||||
|
ctx.lineCap = 'round';
|
||||||
|
|
||||||
|
ctx.strokeStyle = color;
|
||||||
|
ctx.moveTo(lastPos.x, lastPos.y);
|
||||||
|
getPosition(event);
|
||||||
|
|
||||||
|
ctx.lineTo(lastPos.x, lastPos.y);
|
||||||
|
ctx.stroke();
|
||||||
|
}
|
34
style.css
Normal file
34
style.css
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#canvas {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menu {
|
||||||
|
background-color: #fff;
|
||||||
|
position: absolute;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border: none;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #2f3136;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
transition: ease-in-out .2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background-color: #646466;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
border: 2px solid #000;
|
||||||
|
padding: 5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user