-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
49 lines (36 loc) · 1.33 KB
/
Copy pathmain.js
File metadata and controls
49 lines (36 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const stickers = document.querySelectorAll(".sticker");
const whiteboard = document.getElementById("whiteboard");
let previousClickHandler;
let previousSticker;
function createEmojiSticker(event, emoji) {
const sticker = document.createElement('div')
sticker.style.position = "absolute"
sticker.style.left = `${event.clientX}px`
sticker.style.top = `${event.clientY}px`
sticker.innerText = emoji
sticker.style.transform = 'rotate(10deg)'
return sticker
}
function stickerDrop(event, emoji) {
const newSticker = createEmojiSticker(event, emoji)
whiteboard.appendChild(newSticker);
}
function stickerMousemove(event, emoji) {
if (previousSticker) {
whiteboard.removeChild(previousSticker)
}
const newSticker = createEmojiSticker(event, emoji)
whiteboard.appendChild(newSticker);
previousSticker = newSticker;
}
stickers.forEach((sticker) => {
sticker.addEventListener("click", () => {
const emoji = sticker.cloneNode(true).innerText;
const onClickHandler = (event) => stickerDrop(event, emoji)
whiteboard.removeEventListener("click", previousClickHandler);
whiteboard.addEventListener("click", onClickHandler);
const mousemoveHandler = (event) => stickerMousemove(event, emoji)
whiteboard.addEventListener("mousemove", mousemoveHandler);
previousClickHandler = onClickHandler
});
});