-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathscript.js
88 lines (73 loc) · 2.88 KB
/
script.js
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// Select all waste items and waste bins
const wasteItems = document.querySelectorAll('.waste-item');
const wasteBins = document.querySelectorAll('.waste-bin');
const scoreDisplay = document.getElementById('score');
const resultDisplay = document.getElementById('result');
let score = 0;
// Add drag event listeners to waste items
wasteItems.forEach(item => {
item.addEventListener('dragstart', dragStart);
item.addEventListener('dragend', dragEnd);
});
// Add drag event listeners to waste bins
wasteBins.forEach(bin => {
bin.addEventListener('dragover', dragOver);
bin.addEventListener('drop', drop);
});
// Drag start event
function dragStart() {
this.classList.add('dragging');
}
// Drag end event
function dragEnd() {
this.classList.remove('dragging');
}
// Allow the bin to be a drop target
function dragOver(e) {
e.preventDefault(); // Prevent default to allow drop
}
// Drop event
function drop(e) {
const draggedItem = document.querySelector('.dragging');
const itemCategory = draggedItem.dataset.category;
const binCategory = this.dataset.category;
// Check if the item is dropped in the correct bin
if (itemCategory === binCategory) {
// Increment the score
score++;
scoreDisplay.textContent = `Score: ${score}`;
// Display success message
resultDisplay.textContent = 'Yes! You are correct!';
resultDisplay.style.color = 'green';
// Remove the item from the DOM
draggedItem.remove();
} else {
// Display error message
resultDisplay.textContent = 'Oops! Try again.';
resultDisplay.style.color = 'red';
}
function drop(e) {
const draggedItem = document.querySelector('.dragging');
const itemCategory = draggedItem.dataset.category;
const binCategory = this.dataset.category;
const resultMessage = document.getElementById('result');
// Clear previous message and remove classes
resultMessage.classList.remove('correct', 'incorrect', 'show');
resultMessage.textContent = '';
// Check if the drop is correct
if (itemCategory === binCategory) {
score += 1; // Increment score for correct drop
document.getElementById('score').textContent = `Score: ${score}`;
resultMessage.textContent = 'Yes! You are correct!';
resultMessage.classList.add('correct', 'show'); // Add correct class
} else {
resultMessage.textContent = 'Oops! Try again.';
resultMessage.classList.add('incorrect', 'show'); // Add incorrect class
}
// Remove the classes after some time
setTimeout(() => {
resultMessage.classList.remove('correct', 'incorrect', 'show');
resultMessage.textContent = ''; // Clear the message after 2 seconds
}, 2000); // Message visible for 2 seconds
}
}