티스토리 뷰
const cssProperty = [
{name: "accent-color", desc: "accent-color 속성은 일부 사용자 인터페이스 컨트롤의 액센트 색상을 설정합니다."},
{name: "align-content", desc: "align-content 속성은 콘텐츠 항목 사이 및 주위의 공간 분포를 설정합니다."},
{name: "align-items", desc: "align-items 속성은 모든 직계 자식의 align-self 값을 그룹으로 설정합니다."},
//중략...
]
const searchBox = document.querySelector("#search_box"); //input박스(#search_box)를 변수(searchBox)에 저장
const cssCount = document.querySelector(".count"); //전체 속성 갯수(.count)를 변수(cssCount)에 저장
const cssDesc = document.querySelector(".desc"); //속성의 설명을 변수(cssDesc)에 저장
const cssList = document.querySelector(".list"); //속성의 리스트를 변수(cssList)에 저장
// CSS 속성 값/전체 갯수 출력하기
cssProperty.map((element, index) => {
cssCount.innerText = "전체 목록 갯수 : " + (index+1) + "개"; //cssCount에 cssProperty의 갯수를 글자로 (innerText) 표현
cssList.innerHTML += "<span>"+ element.name +"</span>"; //cssList에 cssProperty의 CSS 속성 값(element.name)를 문서에 (innerHTML) 표현
});
//사용자가 검색한 값
searchBox.addEventListener("keyup", () => { //searchBox에 입력(keyup) 했을 때 이벤트(addEventListener) 실행
const searchWord = searchBox.value; //사용자 입력 값(searchBox.value)을 변수(searchWord)에 저장
//console.log(searchWord);
findProp(searchWord); //함수(findProp) 선언 및 함수에 매개변수(searchWord) 저장
});
//속성을 클릭하면 클리한 데이터 값을 가져와야 한다.
document.querySelectorAll(".list span").forEach(span => {
span.addEventListener("click", () => {
const listProp = span.innerText; //클릭한 속성을 변수(listProp)에 저장
findProp(listProp); //함수(findProp) 선언 및 함수에 매개변수(listProp) 저장
})
})
function findProp(searchProperty){ //함수(findProp) 정의
const targetData = cssProperty.find((data) => data.name === searchProperty) //searchProperty(입력 값,클릭한 속성)가 CSS 속성 값(data.name)가 같으면 변수(targetData)에 저장
//조건문의 조건: targetData == null
if(targetData == null){
cssDesc.textContent = "해당 속성은 존재하지 않습니다. 다시 검색해 주세요!";
return;
}
cssDesc.innerHTML = targetData.desc; //cssDesc에 targetData을 문서에 (innerHTML) 표현
}
'Script Sample > Search Effect' 카테고리의 다른 글
Search Effect06 - sort( ) / reverse( ) (0) | 2022.02.15 |
---|---|
Search Effect05 - filter( ) (0) | 2022.02.11 |
Search Effect03 - charAt( ) (0) | 2022.02.08 |
Search Effect02 - includes( ) (0) | 2022.02.07 |
Search Effect01 - indexOf( ) (0) | 2022.02.07 |
댓글
© 2018 webstoryboy