에니메이션 메서드를 사용하면 선택한 요소에 스타일을 적용한 움직임을 만들어 낼 수 있다.
애니메이션을 적용하기 위해서는 .animate()메서드를 사용한다.
[기본형]
$('요소선택').animate({css스타일 속성 : '값'}, 효과 적용 시간, 가속도, 콜백함수)
- ({css스타일 속성 : 값} : 애니메이션으로 적용할 css스타일을 넣는다. 이때 객체로 넣어야 하며 속성 : '값' 으로 구분하여 작성한다
- 효과 적용 시간 : 동작에 반응하는데 소요되는 시간을 뜻한다. 적용시간은 'fast', 'slow','normal'이나 ms단위로 숫자를 넣는다.
- 가속도 : 'swing' 또는 'linear' 를 적용할 수 있다. 'swing' = 시작과 끝은 느리게, 중간은 빠른 속도로 움직인다. 'linear' = 일정한 속도로 움직인다. 기본값은 swing이고 가속도 부분을 안적으면 swing이 실행
- 콜백함수 : 콜백함수는 생략이 가능하다. 콜백함수는 효과가 끝났을 때 실행할 함수이다. 콜백함수는 익명함수로 쓴다.
예제 ) 버튼을 누르면 500px 과 50px씩 이동
<div>
<button class="btn1">버튼1</button>
</div>
<span class="txt1">500px이동</span>
<div>
<button class="btn2">버튼2</button>
</div>
<span class="txt2">"50px"씩 이동</span>
1. 버튼누르면 500px이동
//.btn1을 누르면 실행
$(".btn1").on("click", function () {
$(".txt1").animate(
{
marginLeft: "500px",
fontSize: "30px",
},
1000,
"linear",
function () {
alert("모션완료");
}
);
});
.txt1을 1초동안 500px만큼 이동시킨다.
콜백함수로 애니메이션이 끝나면 alert 창이 실행
2. 버튼을 클릭할 때마다 50px씩 더해져서 이동시키기
//.btn2를 클릭할 때마다 이벤트 실행
$(".btn2").on("click", function () {
//.txt2를 0.5초동안 50px씩 이동. 가속도를 지정하지않으면 기본값인 swing이 지정
//계속해서 복합대입으로 +50씩 더해서 옆으로 이동하게 함
$(".txt2").animate(
{
marginLeft: "+=50px",
},
500
);
});
마진레프트의 기본값은 0 이라서 계속해서 +50씩 더해져서 클릭할 때마다 50px씩 이동한다.
'제이쿼리' 카테고리의 다른 글
[제이쿼리]- 애니메이션, 효과의 제어 메서드 (0) | 2024.08.28 |
---|---|
[제이쿼리]- 효과 메서드 effect (0) | 2024.08.28 |
[제이쿼리]- 이벤트 제거 메서드 / 기본이벤트와 라이브이벤트 각각 제거 (0) | 2024.08.27 |
[제이쿼리]- 그룹 이벤트 등록 메서드 종류 / 라이브 이벤트 등록 메서드/ 동적으로 생성한 요소에 이벤트 등록하기 - 라이브 이벤트 (0) | 2024.08.27 |
[제이쿼리]- 이벤트가 발생한 요소 추적 / this를 이용해서 내가 클릭한 a 애들만 css 적용 / 내가 클릭한 요소가 this (0) | 2024.08.26 |