본문 바로가기

Lecture

0413.Lecture

drop menu

array

코드 줄이는 << important

navigation

html간단하게 

animation안에 animation

 

display: flex;

     justify-content:

          space-between;

 

 

vw/vh

 

> vw: view width / vh: view height

> view == whole browers size

> 약간 %같은 느낌? 1당 1% : ex) 90vh = 높이 기준으로 90%;

 

<< %는 크기가 but 바뀜 vw/h는 축소를 해도 그대로 유지 

<< 화면이 늘어나도 고정

 

 

layout popup

 

 

삼항연산자

 

 

DOMContentLoaded

window.addEventListener('DOMContentLoaded',init);

window 객체 << 최상위 객체: 다 있음

여기에 eventlistener로 모든 내용이 다 loaded된다음 실행하라는 명령을 준다. 이게 DOMContentLoaded.

 

 

addEventListner

Element.addEventListener() >>element에는 addEventListener라는 메소드가 존재한다

addEventListner에는 두가지 인자값이 있다. (eventName:as string , callback function(): 콜백함수)

 

배열 반복문 (forEach)

traditional way = 

        for(let i=0; i <headerGnb.length; i++){
            console.log(i, headerGnb[i]);
        }

forEach를 사용하면

headerGnb.forEach(forFn); //callback function

        function forFn(value,index){
            console.log(index,value);
        }

forEach문을 사용해서 callback function을 사용해준다.

callback function에서 인자값은 순서대로 배열의 value값, 배열의 index값을 가지고 온다.

 

Target (eventname.taget/currentTarget): 에는 두종류가 있는데 target 과 currentTarget 이다. target은 자식요소를 리턴하고 currentTarget은 부모요소를 리턴한다. 

차이점을 보고싶어서 아래 menuover/menuout 함수에 currentTarget을 target으로 바꾸고 console로 찍어봤는데 차이점이 크게 없어서 정확히 뭐가 다를까.,,,

        function init(){
            let headerGnb = document.querySelectorAll('.header_gnb >li');

            //반복문 forEach : 배열을 반복할때 
            headerGnb.forEach(forFn); // array.forEach(callback:function);
            
            //익명함수 : 함수 이름이 없음: anonymous function
            headerGnb.forEach(function(element){
                element.addEventListener('mouseenter',menuover);
                element.addEventListener('mouseleave',menuout);

            }); // 모든 value값에 mouseevent와 method를 등록해줌

        }
        
        function menuover(event){
            let snb = event.currentTarget.querySelector('.snb');
            snb.classList.add('on');
        }

        function menuout(event){
            let snb = event.currentTarget.querySelector('.snb');
            snb.classList.remove('on');
        }

 

 

위에 함수를

        function init(){
            let headerGnb = document.querySelectorAll('.header_gnb >li');

            //익명함수 : 함수 이름이 없음: anonymous function
            headerGnb.forEach(function(element){
            
                element.addEventListener('mouseenter',menu);
                element.addEventListener('mouseleave',menu);
                
            }); // 모든 value값에 mouseevent와 method를 등록해줌
            
        }

        function menu(event){
            
            let snbAll = document.querySelectorAll('.snb');
            
            snbAll.forEach(function(ele){
                if(event.type == 'mouseevent'){  //type = 어떤 method가 실행된건지 여기선 mouseenter과 mouseleave를 구분하기 위해서
                    ele.classList.add('on');
                }else{
                    ele.classList.remove('on');
                }
            })
        }

 

classList.add/remove

 

재귀함수

원하는 값이 나올때 까지 특정함수 안에서 함수를 실행하는 방법

'Lecture' 카테고리의 다른 글

git - user Information  (0) 2021.04.20
Template Literals  (0) 2021.04.14
Web page 만들기/ 반응형  (0) 2021.04.08
0401.객체  (0) 2021.04.01
0331.  (1) 2021.03.31