티스토리 뷰

https://garenchoi.github.io/webs_class/javascript/effect/searchEffect06.html


const cssProperty = [
            {num: 1, name: "all", desc: "all 속성은 CSS 속성 을 재설정하는 데 사용할 수 있는 약식 속성입니다."},
            {num: 2, name: "animation", desc: "animation 속성은 애니메이션 속성을 설정하기 위한 약식 속성입니다."},
            {num: 3, name: "animation-delay", desc: "animation-delay 속성은 애니메이션이 시작되는 시간을 설정합니다."},
            {num: 4, name: "animation-direction", desc: "animation-direction 속성은 애니메이션이 움직이는 방향을 설정합니다."},
            {num: 5, name: "animation-duration", desc: "animation-duration 속성은 애니메이션이 움직이는 시간을 설정합니다."},
            {num: 6, name: "animation-fill-mode", desc: "animation-fill-mode 속성은 애니메이션이 끝난 후 상태를 설정합니다."},
            {num: 7, name: "animation-iteration-count", desc: "animation-iteration-count 속성은 애니메이션 반복 횟수를 설정합니다."},
            {num: 8, name: "animation-name", desc: "animation-name 속성은 애니메이션 키프레임을 설정합니다."},
            {num: 9, name: "animation-play-state", desc: "animation-play-state 속성은 애니메이션의 진행상태를 설정합니다."},
            {num: 10, name: "backdrop-filter", desc: "backdrop-filter 속성은 요소 뒤에 필터효과를 설정합니다."},
            {num: 11, name: "backface-visibility", desc: "backface-visibility 속성은 요소 뒷면 출력 여부를 설정합니다."},
            ...
        ];

        const searchBox = document.querySelectorAll(".search span");	//searchBox에 클래스 search의 span 저장
        const cssList = document.querySelector(".list ul"); 		//cssList에 클래스 list의 ul 저장
        const cssCount = document.querySelector(".count");			//cssCount에 클래스 count 저장

        //데이터 출력, 전체 갯수
        const updateList = function(){		//함수 updateList 선언
            let listHTML = '';				//변수 listHTML를 '' 로 변경

            cssProperty.forEach((data,index) => {		//cssProperty의 element값을 data에 index값을 index에 저장
                listHTML += `<li>${data.num}. ${data.name} : ${data.desc}</li>`;	//listHTML에 `<li>${data.num}. ${data.name} : ${data.desc}</li>` 추가
                cssCount.innerHTML = `전체 목록 갯수 : <em>${index+1}</em>개`;		//cssCount에 `전체 목록 갯수 : <em>${index+1}</em>개` 출력
            })
            cssList.innerHTML = listHTML;		//cssList에 listHTML 출력
        }
        updateList();		//함수 updateList 실행

        //반대 정렬
        function reverse(){			//함수 reverse 선언
            cssProperty.reverse()	//cssProperty에 reverse(반대로 정렬하기) 적용
            updateList();			//함수 updateList 실행
        }
        
        //반대로 버튼 클릭 시
        document.querySelector(".btn1").addEventListener("click", () => {	//클래스 btn1을 클릭했을 때 
            reverse();				//함수 reverse실행
        })

        //오름차순 정렬
        function sortAscending(){			//함수 sortAscending 선언
            cssProperty.sort((a,b) => {		//cssProperty에 sort((a,b) => {return a.num - b.num;}) 
                return a.num - b.num;			//(오름차순 정렬) 적용
            });
            updateList();						//함수 updateList 실행
        }
        
        //오름차순 버튼 클릭 시
        document.querySelector(".btn2").addEventListener("click", () => {	//클래스 btn2을 클릭했을 때
            sortAscending();		//함수 sortAscending실행
        })

        //내림차순 정렬
        function sortDescending(){				//함수 sortDescending 선언
            cssProperty.sort((a,b) => {		//cssProperty에 sort((a,b) => {return b.num - a.num;})
                return b.num - a.num;			//(내림차순 정렬)적용
            });
            updateList();						//함수 updateList 실행
        }
        
        //내림차순 버튼 클릭 시
        document.querySelector(".btn3").addEventListener("click", () => {	//클래스 btn3을 클릭했을 때
            sortDescending();		//함수 sortDescending실행
        })
        
        //알파벳순 정렬(a~z)
        function sortAlphabet(){				//함수 sortAlphabet 선언
            cssProperty.sort((a,b) => {		//cssProperty에 sort((a,b) => {return x.localeCompare(y)})
                let x = a.name;					//변수 x에 a의 name값 저장
                let y = b.name;					//변수 y에 b의 name값 저장
                return x.localeCompare(y)		//(알파벳순 정렬a~z)적용
            });
            updateList();						//함수 updateList 실행
        }
        
         //알파벳순 버튼 클릭 시
        document.querySelector(".btn4").addEventListener("click", () => {	//클래스 btn4을 클릭했을 때
            sortAlphabet();		//함수 sortAlphabet실행
        })

        //알파벳순 정렬(z~a)
        function sortAlphabetZ(){				//함수 sortAlphabetZ 선언
            cssProperty.sort((a,b) => {		//cssProperty에 sort((a,b) => {return y.localeCompare(x)})
                let x = a.name;					//변수 x에 a의 name값 저장
                let y = b.name;					//변수 y에 b의 name값 저장
                return y.localeCompare(x)		//(알파벳역순으로 정렬z~a)적용
            });
            updateList();						//함수 updateList 실행
        }
        
         //알파벳순(z~a) 버튼 클릭 시
        document.querySelector(".btn5").addEventListener("click", () => {	//클래스 btn5을 클릭했을 때
            sortAlphabetZ();		//함수 sortAlphabetZ실행
        })

'Script Sample > Search Effect' 카테고리의 다른 글

searchEffect05 - filter()  (0) 2022.02.10
searchEffect04 - find()  (0) 2022.02.08
searchEffect03 - charAt()  (0) 2022.02.08
searchEffect02 - includes()  (7) 2022.02.07
searchEffect01 - indexOf()  (6) 2022.02.07
댓글
© 2018 webstoryboy