Skip to content

Commit edbccfb

Browse files
author
devbyali
committed
add filtering
1 parent 2f1edc1 commit edbccfb

File tree

2 files changed

+61
-1
lines changed

2 files changed

+61
-1
lines changed

app.js

+26-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const filterOption = document.querySelector(".filter-todo");
88
//document.addEventListener("DOMContentLoaded", getTodos);
99
todoButton.addEventListener("click", addTodo);
1010
todoList.addEventListener("click", deleteTodo);
11-
//filterOption.addEventListener("click", filterTodo);
11+
filterOption.addEventListener("click", filterTodo);
1212

1313
//Functions
1414

@@ -59,3 +59,28 @@ function deleteTodo(e) {
5959
todo.classList.toggle("completed");
6060
}
6161
}
62+
63+
function filterTodo(e) {
64+
const todos = todoList.childNodes;
65+
todos.forEach(function (todo) {
66+
switch (e.target.value) {
67+
case "all":
68+
todo.style.display = "flex";
69+
break;
70+
case "completed":
71+
if (todo.classList.contains("completed")) {
72+
todo.style.display = "flex";
73+
} else {
74+
todo.style.display = "none";
75+
}
76+
break;
77+
case "uncompleted":
78+
if (!todo.classList.contains("completed")) {
79+
todo.style.display = "flex";
80+
} else {
81+
todo.style.display = "none";
82+
}
83+
break;
84+
}
85+
});
86+
}

style.css

+35
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,38 @@ form button:hover {
107107
transform: translateY(8rem) rotateZ(20deg);
108108
opacity: 0;
109109
}
110+
111+
.select {
112+
margin: 1rem;
113+
position: relative;
114+
overflow: hidden;
115+
border-radius: 10px;
116+
}
117+
118+
select {
119+
-webkit-appearance: none;
120+
-moz-appearance: none;
121+
appearance: none;
122+
outline: none;
123+
border: none;
124+
color: #ff6f47;
125+
width: 10rem;
126+
cursor: pointer;
127+
padding: 1rem;
128+
}
129+
130+
.select::after {
131+
content: "\25bc";
132+
position: absolute;
133+
background: #ff6f47;
134+
top: 0;
135+
right: 0;
136+
padding: 1rem;
137+
pointer-events: none;
138+
transition: all 0.3s ease;
139+
}
140+
141+
.select:hover::after {
142+
background: white;
143+
color: #ff6f47;
144+
}

0 commit comments

Comments
 (0)