애니메이션 효과 제어 메서드는
효과 또는 애니메이션이 적용된 요소의 동작을 제어하는 메서드이다.
이 메서드를 사용하려면 queue의 개념을 이해하고 있어야 한다.
애니메이션 적용 원리와 큐의 개념
: 애니메이션 메서드는 함수가 적용된 순서대로 큐(queue)라는 저장소(memory)에 저장된다.
큐는 줄을 서서 대기하는 공간과 비슷하다.
큐에 저장된 애니메이션이나 효과는 큐에 순서대로 대기를 하고, 순서대로 애니메이션이 실행된다.
(애니메이션1이 다 끝나면 애니메이션2가 실행되고 2가 다 끝나면 3이 실행된다)
먼저 들어간 데이터가 먼저 처리되는 형식을 FIFO(First In First Out)방식이라고 부른다.
애니메이션 효과 제어 메서드의 종류
- stop( )
: 현재 실행중인 효과를 모두 중지시킴 / 요소에 적용한 애니메이션을 중지
[기본형]
1.
$('요소선택').stop();
: 진행중인 첫번째 애니메이션만 정지시킨다. 큐에 대기중인 애니메이션은 계속해서 실행함
2.
$('요소선택').stop(clearQueue, finsh);
: clearQueue, finsh자리에는 true나 false를 입력할 수 있다.(기본값은 false)
clearQueue가 true면 큐에서 대기중인 애니메이션을 모두 지우고, finsh가 true면 진행중인
애니메이션을 강제로 종료시점으로 옮겨진다
- delay( )
: 지정한 시간만큼 지연했다가 애니메이션을 진행한다. 인자값으로 ms단위를 사용한다
[기본형]
$('요소선택').delay(지연시간).animate({css 속성: 값}, 소요시간, 가속도, 콜백함수)
- queue( )
: 큐에 지정한 함수를 추가하거나 큐에 대기 중인 함수를 배열에 담아서 반환함.
그리고 queue( )메서드 이후의 애니메이션 효과 메서드는 모두 취소된다.
[기본형]
1. 큐의 함수를 반환 시킬 때
$('요소선택').queue();
2. 큐에 함수를 추가할 때
$('요소선택').queue(function(){ 코드 });
- dequeue( )
: queue( ) 메서드를 사용하면 대기하고 있던 애니메이션 메서드가 모두 취소되는데 , 이 것을 막고 싶을 때 사용한다.
이것을 사용하면 애니메이션 메서드가 제거되는 것을 막을 수 있다. 큐메서드 안에다 적어야지 부드럽게 연결된다.
[기본형]
$('요소선택').dequeue();
- clearqueue( )
: 큐에서 처음으로 진행하고 있는 애니메이션을 제외하고 큐에서 대기 중인 애니메이션을 모두 제거한다.
[기본형]
$('요소선택').clearqueue();
- finish( )
: 선택한 요소의 진행중인 애니메이션을 강제로 완료 시점으로 보낸 후 종료한다.
예제)
- stop()
- delay()
딜레이메서드가 애니메이션보다 위에 있어야한다.
혹은 한줄로 연결해서 써줘도 된다.
- on click하고 같이 사용한 예제
- queue()
queue는 queue이후의 애니메이션효과 메서드를 취소시키므로 큐 이후에 애니메이션을 적어놔도 작동이 안되는 것을 확인할 수 있다.
그래서 이때 dequeue( )를 사용한다
- dequeue( )
디큐를 연결해주면 다시 아래의 애니메이션도 작동하는 것을 볼 수 있다.
- clearqueue( )
클리어큐는 첫번째 애니메이션만 실행하고 그 뒤는 취소시키기때문에 뒤의 애니메이션은 작동하지않는다.
'제이쿼리' 카테고리의 다른 글
[제이쿼리]- 애니메이션 메서드 (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 |