티스토리 뷰
const searchBox = document.querySelector("#search-box"); // 사용자의 입력칸에 해당하는 태그의 id(search-box)를 불러와 입력 이벤트를 저장
const cssList = document.querySelectorAll(".list ul li"); // li의 data-name(검색할 데이터 이름)
searchBox.addEventListener("keyup", () => { // 키를 눌렀다가 떼었을때 이벤트
const searchWord = searchBox.value; // 사용자가 입력한 데이터를 searchWord 변수에 저장
cssList.forEach(ele => { // cssList의 요소들(찾을 데이터 이름)을 foreach문으로 접근
const cssName = ele.dataset.name; // CSS의 속성값을 저장
if (cssName.indexOf(searchWord)) { // 사용자가 입력한 값이 cssName 안에 있을 경우(인덱스 값이 존재할경우)
ele.classList.add("hide"); // 요소들에 hide 클래스 이름을 추가
else {
ele.classList.remove("hide"); // 입력한 값이 없을 경우 hide 클래스 이름을 삭제
}
});
});
- keyup 이벤트를 사용 하는 이유
영문에서는 keypress 이벤트가 적용되지 않고 keydown 이벤트가 실행된 뒤에 텍스트가 입력되기 때문
- 키 입력 이벤트 순서
1. 사용자가 키보드 키를 누른다
2. keydown 이벤트가 발생한다
3. 글자가 입력된다
4. keypress 이벤트가 발생한다
5. 사용자가 키보드에서 손을 뗀다
6. keyup 이벤트가 발생한다
'Script Sample > Search Effect' 카테고리의 다른 글
searchEffect06 - sort() / reverse() (0) | 2022.02.15 |
---|---|
searchEffect05 - filter() (0) | 2022.02.15 |
searchEffect04 - find() (0) | 2022.02.08 |
searchEffect03 - charAt() (0) | 2022.02.08 |
searchEffect02 - includes() (1) | 2022.02.07 |
댓글
© 2018 webstoryboy