113 of 119 menu

animate 메서드

animate 메서드는 다양한 CSS 속성에 대한 애니메이션 효과를 생성할 수 있게 해줍니다. 유일한 필수 매개변수는 css 메서드에 전달하는 것과 유사한 CSS 속성이 담긴 객체입니다. 비숫자 값을 가지거나 여러 값을 가지는 많은 속성들은 jQuery의 기본 기능으로 애니메이션화할 수 없습니다(예: background-color). 또한 약식 CSS 속성명이 항상 지원되는 것은 아닙니다, 예를 들어 font 대신 fontSize 또는 font-size를 사용해야 합니다. 값 앞에 '+=' 또는 '-='를 붙일 수 있으며, 이 경우 지정된 값이 속성의 현재 값에 더해지거나 빠집니다. 또한 숫자 값 대신 show, hide 또는 toggle를 넣을 수 있습니다. animate를 포함한 모든 jQuery 효과는 설정 jQuery.fx.off = true를 사용하여 지속 시간을 0으로 설정함으로써 전역적으로 비활성화할 수 있습니다.

문법

애니메이션의 첫 번째 매개변수는 키: 값 형식의 CSS 속성과 그 값들이 담긴 객체로, 애니메이션화하려는 대상입니다. 나머지 매개변수는 선택사항으로 간주됩니다. 두 번째 매개변수는 애니메이션 지속 시간을 밀리초 단위로 지정하며, 기본값은 400ms입니다. 세 번째 매개변수는 전환을 위한 이징 함수입니다 (기본값은 swing). 네 번째 매개변수는 콜백 함수로, 애니메이션 실행이 완료된 후 시작됩니다:

.animate(properties, [duration ], [easing function ], [callback function ]);

시간은 밀리초뿐만 아니라 키워드 slow (600ms) 및 fast (200ms)로도 지정할 수 있습니다. 값이 클수록 애니메이션이 느려집니다. 두 번째 매개변수로 키: 값 쌍을 포함하는 JavaScript 객체 형태의 다양한 옵션을 메서드에 전달할 수 있습니다:

.animate(properties, options);

예를 들어, CSS 속성 widthheight의 값을 toggle로 설정해 보겠습니다. 지속 시간은 5000ms로 하고, 이징 함수는 객체 형태로 전달하며, 너비에 대해서는 선형 함수, 높이에 대해서는 easeOutBounce로 지정합니다. 또한 애니메이션이 완료되면 함수가 한 번 실행됩니다 (키 complete 참조). 이 함수는 요소 #test 뒤에 'Animation complete.'라는 텍스트가 담긴 div를 배치합니다:

$('#test').animate({ width: 'toggle', height: 'toggle' }, { duration: 5000, specialEasing: { width: 'linear', height: 'easeOutBounce' }, complete: function() { $(this).after('<div>Animation complete.</div>'); } });

아래 표는 객체 options의 속성과 메서드, 그리고 그에 대한 설명을 보여줍니다:

이름 설명
duration 애니메이션 지속 시간(밀리초 단위) - 문자열 또는 숫자. 기본값은 400ms입니다.
easing 사용할 이징 함수를 정의합니다. 기본값은 swing입니다.
queue 불리언 값 또는 문자열. 기본값은 true입니다. 애니메이션을 큐에 넣을지 여부를 나타냅니다. 값이 false인 경우 애니메이션이 즉시 시작됩니다. 매개변수를 문자열로 전달하면 애니메이션은 이 매개변수로 표현된 큐에 들어갑니다. 사용자 정의 이름을 가진 큐를 사용할 때는 애니메이션이 자동으로 시작되지 않습니다. 시작하려면 dequeue('queuename')를 사용하세요.
specialEasing 여기서 키는 CSS 속성, 값은 해당하는 이징 함수인 객체를 전달할 수 있습니다.
step 애니메이션화된 각 요소의 각 애니메이션화된 속성에 대해 호출되는 함수입니다. 이 함수를 통해 Tween 객체를 수정하여 속성 값이 설정되기 전에 변경할 수 있습니다. 매개변수로 현재 tween 값과 Tween 객체를 받습니다.
progress 애니메이션의 각 단계 이후에 호출되는 함수로, 애니메이션화된 속성의 수에 관계없이 각 요소당 한 번씩만 호출됩니다. 함수는 세 개의 매개변수 animation (프로미스 형태), progress (0부터 1까지의 숫자) 및 remainingMs (남은 밀리초 수)를 받습니다.
complete 요소의 애니메이션이 종료된 후 한 번 호출되는 함수입니다. 함수는 animation (프로미스 형태)를 받습니다.
start 요소의 애니메이션이 시작될 때 호출되는 함수입니다. 함수는 animation (프로미스 형태)와 jumpedToEnd (불리언 값. true이면 애니메이션이 자동으로 완료됨)을 받습니다.
done 요소의 애니메이션이 종료될 때(그 프로미스가 성공적으로 이행되었을 때) 호출되는 함수입니다. 함수는 animation (프로미스 형태)와 jumpedToEnd (불리언 값. true이면 애니메이션이 자동으로 완료됨)을 받습니다.
fail 요소의 애니메이션이 오류와 함께 종료될 때(그 프로미스가 오류와 함께 이행되었을 때) 호출되는 함수입니다. 함수는 animation (프로미스 형태)와 jumpedToEnd (불리언 값. true이면 애니메이션이 자동으로 완료됨)을 받습니다.
always 요소의 애니메이션이 완료되거나 완료 없이 중지될 때 (그 프로미스가 성공 또는 오류와 함께 이행될 때) 호출되는 함수입니다. 함수는 animation (프로미스 형태)와 jumpedToEnd (불리언 값. true이면 애니메이션이 자동으로 완료됨)을 받습니다.

예제

버튼 #left을 클릭하면 초록색 사각형을 왼쪽으로 50px 이동시키고, 버튼 #right을 클릭하면 오른쪽으로 50px 이동시키도록 합시다. 또한 지속 시간을 600ms - 명령어 slow로 설정하겠습니다:

<button id="left">왼쪽</button> <button id="right">오른쪽</button> <div class="block"></div> div { position: absolute; background-color: green; left: 50px; width: 100px; height: 100px; margin: 5px; } $('#right').click(function() { $('.block').animate({'left': '+=50px'}, 'slow'); }); $('#left').click(function() { $('.block').animate({'left': '-=50px'}, 'slow'); });

함께 보기

  • 요소를 부드럽게 표시하는 메서드 show,
  • 실행 중인 애니메이션을 중지할 수 있는 메서드 stop,
  • 이벤트 실행 지연을 설정하는 메서드 delay,
  • 애니메이션을 전역적으로 비활성화할 수 있는 속성 jQuery.fx.off,
  • 현재 애니메이션에 관여하고 있는 요소를 선택하는 선택자 animated,
한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부