[TASK] add quick search index
This commit is contained in:
@ -2,8 +2,39 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||
changeTheme();
|
||||
initcolorTheme();
|
||||
apply_stickies();
|
||||
initSearch();
|
||||
});
|
||||
|
||||
function initSearch() {
|
||||
const input = document.querySelector('#filter-js');
|
||||
|
||||
if(input) {
|
||||
filterElements(input.value);
|
||||
|
||||
input.addEventListener('input', () => {
|
||||
filterElements(input.value);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function filterElements(input) {
|
||||
const elements = document.querySelectorAll('[data-filterable="true"]');
|
||||
|
||||
Array.prototype.forEach.call(elements, (element) => {
|
||||
// set both strings (input & dataset filter) to lowercase to not be case sensitive
|
||||
let filterString = element.dataset.filter?.toLocaleLowerCase();
|
||||
|
||||
// bulk hide all elements
|
||||
element.style.display = 'none';
|
||||
|
||||
// show if input matches
|
||||
if(filterString?.includes(input.toLocaleLowerCase())) {
|
||||
element.style.display = 'flex';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function changeTheme() {
|
||||
let toggleBtn = document.querySelector("#theme-toggle-js");
|
||||
|
||||
|
Reference in New Issue
Block a user