Effects
플래시 전용으로만 생각되었던 다양한 모션 그래픽과 애니매이션 그리고 인터랙티브들을 웹 표준에서 작업할 수 있게 제공해주는 것이 바로 JQuery의 Effects와 Custom와 Custom Animations이다.
1. effect 함수의 매개변수
(1) duration
시간 값으로, 1/1000밀리세컨드 단위이다.
문자열로 "show", "normal", "fast"를 사용할 수도 있으며, 이는 각각 200, 400, 600 밀리세컨드를 의미한다.
매개변수 생략시 기본 값은 normal이며 400밀리세컨드로 움직이게 된다.(show(), hide() 제외)
(2) easing
easing 함수란, 스피드를 조작하여 특별한 효과를 나타나게 하는 함수를 의미한다.
jQuery가 기본적으로 가지고 있는 easing 표현은 swing, linear이다. 더 많은 easing효과는 jQuery UI site를 방문한다. 단, easing 함수는 플러그인이므로 관련된 라이브러리를 포함하고 있어야만 사용할 수 있다.
(3) callback
콜백 함수는 스스로 호출되는 함수의 의미로 이 챕터에서는 이펙트 애니메이션 효과가 완료되면 자동으로 호출되는 함수를 말한다.
콜백 함수는 매개변수를 전달할 수는 없지만 this 키워드는 자동으로 전달된다. 콜백 함수 내부 코드에서 this는 이펙트 애니메이션의 주체인 요소 노드를 의미한다.
특정 이펙트 애니메이션 효과를 지속적으로 반복하고 싶을 때 자주 사용되는 함수이다.
2. Basics
Basics는 말 그대로 기본 효과이다. 기본 효과는 HTML 객체를 보이거나 감추는 기능이다.
여기에 시간을 정해주면 약간의 애니메이션 효과를 줄수 있다. 이 함수를 적용하면 객체는 CSS의 display 상태를 변경해주는데, hide() 함수는 display:none로 바꿔주고,
show() 함수는 display:block 또는 display:inline으로 바꿔주게 된다. display:nonel상태가 되면 DOM 영역에서 제거되면서 그 빈 부분을 다른 HTML이 채우게 된다.
opacity:0으로만 해서는 DOM에서 제거되지 않는다.
(1) hide()
.hide() Returns: jQuery
hide() 함수에 매개 변수가 전달되지 않으면 즉시 노드의 상태를 display:none으로 변경하면서 눈에 보이지 않게 된다.
.hide(duration ([,callback]) Returns: jQuery
서서히 보이지 않게 하려면 시간 값(1/1000)을 매개 변수로 전달해주면 된다.
.hide([duration] [,easing] [,callback]) Returns: jQuery
easing은 요소의 애니메이션 상태에 다양한 가.감속등을 설정할 수있다.
세번째 매개변수인 콜백 함수가 지정되면 모든 hide() 작업이 끝난 후에 호출된다.
------> ------>
함 수 |
기 능 |
fedeIn() |
opacity 0에서 1로 전환하며 서서히 나타나게 처리한다. display 상태는 block이나 inling으로 설정된다. |
fadeOut() |
opacity 1에서 0로 전환하며 서서히 사라지게 처리한다. display 상태는 none로 설정된다. |
fadeToggle() |
fadeIn()과 fadeOut()을 번갈아 가며 실행해준다. |
fadeTo() |
불투명도(opacity)를 지정하여 fade를 조절한다. |
-----> ------>
(3) fadeToggle()
.fadeToggle([duration] [, easing] [, callback]) returns: jQuery
.fadeToggle() 함수는 fadeIn()m fadeOut() 함수를 교대로 수행해준다.
(4) fadeTo()
.fadeTo(duration, opacity [, easing] [, callback]) returns: jQuery
fadeTo() 함수는 opacity를 지정하여 서서히 사라지거나 나타나게 한다. opacity 값의 범위는 0~1 사이이다.
불투명도는 이미지 효과를 적용하는 등과 같이 다양하게 사용된다.
※ 다른 함수와 차이점
- fadeTo() 함수는 반드시 duration을 명시해주어야 한다.
- fadeTo() 함수는 opacity가 0으로 되어 있기 때문에 눈에 보이지 않더라도 display 상태를 none으로 변경하지 않는다. 따라서 문서의 구조에 영향을 미치지 않는다.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title> fadeTo() </title>
<!-- jQuery library -->
<script src="jquery-1.7.2.min.js"></script>
</head>
<body>
<img src="sample3.jpg" alt="" width="300" height="307" />
<br>
// opacity를 변화시킬 버튼 4개를 준비한다. <button> 태그의 title 값에 opacity 값을 설정해 놓았다.
<button title="0">0</button>
<button title="0.3">0.3</button>
<button title="0.6">0.6</button>
<button title="1">1</button>
<!---------- jQuery code Start ---------->
<script>
$("body").append("<p></p>");
$('button').click(function() {
var opacity = $(this).attr("title");
$('img').fadeTo("slow" , opacity , function() {
$("p").append('display : '+$(this).css("display")+"<br/>");
$("p").append('opacity : '+$(this).css("opacity")+"<br/>");
});
});
</script>
</body>
</html>
함수 |
기 능 |
sildeDown() |
슬라이딩 스타일로 요소를 보이게 한다. |
sildeUp() |
슬라이딩 스타일로 요소를 숨기게 한다. |
sideToggle() |
slideDown()와 sildeUp()를 반복하여 바꿔준다. |
------------>
(3) slideToggle()
'WebFont-end > jQuery' 카테고리의 다른 글
[jQuery] Chain (0) | 2014.12.07 |
---|---|
[jQuery] Animation (0) | 2014.12.07 |
[jQuery] Event (0) | 2014.12.07 |
[jQuery] Attribute/CSS (0) | 2014.12.07 |
[jQuery] DOM Manipulation (0) | 2014.12.07 |