카테고리 없음

(js) jQuery - animate

코딩하는logcat 2023. 2. 27. 17:43

웹페이지를 만들다가 버튼을 누르면 객체가 사라지거나, 생기는 등의 에니메이션을 구현해야 했다,

 

css .button:focus + . 로 에니메이션을 만들 수도 있지만 focus상태의 한계로 원하는 결과자 나오지 않았다. 

 

jQuery에서는 .animate() 메소드를 이용하여 사용자 정의한 이펙트 효과를 정의할 수 있다.


.animate() 메소드는 여러 CSS 스타일 속성을 이용하여 새로운 이펙트 효과를 만들어 준다.

 

.animate() 메소드의 원형은 다음과 같다.

 

$(선택자).animate(스타일 [,지속시간] [,시간당속도함수] [,콜백 함수]);

 

  • 스타일 : 필수이며, 이펙트 효과를 구성할 CSS 스타일 속성을 정의한다.
  • 지속 시간 : 이펙트 효과가 지속될 시간을 전달한다.
  • 시간당 속도 함수(easing function): 이펙트 효과의 시간당 속도를 전달한다.
  • 콜백 함수: 이펙트 효과의 동작이 완료된 후에 실행할 함수를 정의한다.

 

스타일은 css 코드라고 생각하면 되고 color을 제외한 거의 모든 css 테그를 사용할 수 있다.

 

지속 시간은 m/s 기준으로 작성한다. 

아니면 fast(400m/s) 또는slow(600m/s)로도 작성 가능하다

 

시간당 속도는 

  • swing : 시작 / 끝에서는 느리게 움직이지만 중간에서는 빨라진다.
  • linear : 일정한 속도로 움직인다.

이고 기본값은 swing이다.

 

콜벡함수부분에 function(animate())를 달아서 연속적인 에니메이션을 구현할 수도 있다. 

$('.option1').animate({opacity : '0', left : "0"},1000);

다음은 .option1 클레스의 객체가 1초동안 투명도가 0으로 변하고 오른쪽으로 이동하는 코드이다.

 

 

$("div").animate({
        width: "toggle",
        height: "toggle",
    }, 1000);

위의 코드는 해당 코드가 실행될때마다 크기가 줄면서 사라지고, 커지면서 생기는 효과가 교대로 일어난다.

 

이처럼 css값인 toggle, show, hide 도 사용 가능하다

 

  • show : 요소를 표시한다.
  • hide : 요소를 감춘다.
  • toggle : 요소를 표시했다가 감췄다가 번갈아 가면서 실행한다. 즉, show와 hide를 번걸아 가면서 실행한다.