카테고리 없음

javascript(21.3.26)

seongjin08 2021. 3. 26. 16:21

1. onmouseover : 해당 객체의 영역위에 커서가 진입하는 순간 발생

 2. onmouseout  : 해당 영역에서 커서가 빠져나가는 순간 발생

 3. onmousedown : 해당 객체의 영역에서 마우스 버튼이 눌려지는 순간 발생

 4. onmouseup   : 해당 객체의 영역에서 마우스 버튼이 떼는 순간 발생

 5. onmousemove : 해당 객체의 영여겡서 커서가 움직이는 순간 발생 

 

* label for 값과 input의 id 값을 같게 해주면 '아이디' 부분을 누를시 텍스트로 커서가 옮겨지게 된다.

  <label for="id">아이디:</label>

    <input type="text" id="id">

 

*clearboth; 를 쓰면 상위 엘리먼트가 float:left를 주더라도 이 친구는 영향을 받지 않는다.

*animation 효과를 주는 코드

animation : 임의변수 시간;

@keyframes 임의 변수 

어디서 어디로 움직일지 from , to를 설정해주면 된다.

#header>.navi{
    animation: slider 0.5s;
    animation-fill-mode: forwards;}
@keyframes slider{
    from{height: 1px;}to{
        height:150px;}}

 

*onmouseover,onmouseout 을 이용하여 마우스가 올라가면 네비게이션바가 나오고 마우스가 나가면 네비게이션바 가 다시 닫히는 걸 구현 해봤다. overflow:hidden 을 이용해서 평상시는 가려져 있다가 마우스가 다가가면 다시 나오게 하는 것이다.

 

* 최대한 코드를 간편하게 하기위해서 css를 하나 만들어 놓고  class'navi' 에 애니메이션 효과를 주고 

마우스가 올라가면 class가 바뀌어 효과가 나타나고 마우스가 나가면 class가 다시 바껴 효과가 없어져 사라지도록 만들어 봣다.

 function snb(){ list=document.querySelector('.snb_area')
           list.setAttribute('class', 'snb_area navi');}
       function snb2(){ list=document.querySelector('.snb_area')
           list.setAttribute('class', 'snb_area');}

*이건 if문을 활용하여 만든 코드인데 경일아카데미 퀵메뉴 애니메이션을 주기위해서  누르는 버튼과 옆에 메뉴가 다른 이미지 이기때문에 메뉴에 명령을 주고 버튼에 따로 명령을 주었다. 또 움직이는게 다르기 때문에 애니메이션 효과도 총 4개를 만들어 넣어주었다. 메뉴에 나오고 들어가도 버튼에 나오고 들어가고.

이걸 div로 묶어서 같이 효과를 주어 주면 간편할거 같아서 시도 해보았으나 계속 에러가 나서 이유를 찾아보았다. 

일단 효과를 주기위해서 position 을 줘야 한다. 다른 이유는 모르겠지만 실패해서 다른 이유를 찾아봐야 겠다.

function moving() {
                    why = document.querySelector('#quick_menu');
                    if (why.className == 'tick') {
                    why.setAttribute('class', 'tock');
                    } else  why.setAttribute('class', 'tick');}
                    what = document.querySelector('#hey');
                    if (what.className == 'naya') {
                        what.setAttribute('class', 'nayana');
                    } else {what.setAttribute('class','naya');}
                    }
.tick{animation: move 0.5s;
    animation-fill-mode: forwards;
}
@keyframes move{
    from{ width: 0;}
    to{width: 85px;}
}
.tock{animation: moving 0.5s;
    animation-fill-mode: forwards;}
@keyframes moving{
    from{width: 85px;}
    to{width: 0;}
}
.naya{ animation: namove 0.5s;
    animation-fill-mode: forwards;
}
@keyframes namove{
    from{right: 0;}
    to{right: 85px;}
}
.nayana{animation: namoveing 0.5s;
    animation-fill-mode: forwards;
}
@keyframes namoveing{
    from{ right: 85px;} 
    to{ right: 0;}
}

 

*position;absolute를 줄때 줌인 줌아웃 할때 안움직이게 하기 위해서는 상위 엘리먼트에 포지션을 정해줘야 한다. 

상위엘리먼트에 relative 을 주면 줌인 아웃 할때 안움직인다.