jQuery Animation은 애니메이션 효과를 만들 수 있습니다.
기본적인 문법은 $(selector).animate({params},speed,callback); 사용합니다.
animate() 간단한 속성
animate()로 CSS속성을 정의할 수 있습니다.
"slow", "fast", milliseconds 로 시간을 정의할 수 있습니다.
간단한 사용 방법은 아래 구문을 확인해주세요. <div> 의 내용을 왼쪽으로 250px 이동하는 내용입니다.
$("button").click(function(){
$("div").animate({left:'250px'});
});
관련예제
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("div").animate({left:'250px'});
});
});
</script>
</head>
<body>
<button>애니메이션 효과</button>
<p>CSS를 정의하여 좌측으로 250px 만큼 div 값을 이동합니다!</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
</div>
</body>
</html>
// 이미지에서 확인되듯이 "애니메이션 효과" 버튼을 클릭하면 사각형이 좌측으로 250px 이동된 모습을 확인할 수 있습니다.
animate() 의 여러가지 속성
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
// 좌측으로 250px 이동하고, opacity 0.5는 이미지를 0.5 만큼 투명도하게 하는것을 말합니다.. 즉 "50% 이미지를 투명하게 해라"는 뜻입니다. 값이 0에 가까울수록 투명도는 커지게 됩니다. 그리고 height, width는 높이와 넓이를 150px 만큼 주겠다는 의미 입니다. 현재 크기가 100이니까 150만큼 커지게 됩니다.
관련예제
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
});
</script>
</head>
<body>
<button>애니메이션 효과</button>
<p>좌측으로 250px 이동하고 투명도를 0.5를 주며, 높이와 넓이를 150px에 하라!</p>
<div style="background:#98bf21;height:100px;width:100px;position:absolute;">
</div>
</body>
</html>
// 위 이미지처럼 CSS의 여러가지 속성값을 가지고 컨트롤할 수 있습니다.
animate() 의 상대값
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
// 좌측으로 250px 이동하고, 높이와 넓이를 100px 만큼 더하라는 의미 입니다. 즉 버튼을 계속 클릭 할수록 이미지는 점점더 커지게 됩니다. 왜냐하면 100px씩 계속 값이 증가되니까요.
기본코딩은 위의 예제를 보면 되고 상대값 설정부분만 바꾸어서 작성해보시기 바랍니다.
관련이미지
// 이미지처럼 사각형의 크기가 좌측으로 250px 이동했고 점점 100px씩 증가되는 모습을 볼 수 있습니다.
animate() 의 기타 속성
아래 구문 처럼 값을 "show", "hide", "toggle" 처럼 줄수도 있습니다.
$("button").click(function(){
$("div").animate({
height:'toggle'
});
});
// 마찬가지 기본 코딩은 같으며 height:'toggle' 을 입력하여 바꿔보시기 바랍니다.
관련 이미지
// 이미지를 보는것처럼 사각형 영역이 나타났다 사라졌다 하게 합니다. toggle의 정의는 이전 내용에서 여러번 정의된바 있으니 생략하겠습니다. 혹시나 toggle에 대해 모르시는 분들은 이전 내용을 봐주시면 됩니다 ^^
animate() 의 고급기능
$("button").click(function(){
var div=$("div");
div.animate({height:'300px',opacity:'0.4'},"slow");
div.animate({width:'300px',opacity:'0.8'},"slow");
div.animate({height:'100px',opacity:'0.4'},"slow");
div.animate({width:'100px',opacity:'0.8'},"slow");
});
// 일단 var 변수값을 선언하는 명령어입니다. 즉 var div=$("div"); div에 $("div")을 대입시키라는 의미입니다. 그렇게 한 이유는 코딩을 줄여주는 역할도 할 수 있고, 하나의 선언으로 여러개를 한꺼번에 처리하니 손쉽게 코딩을 할 수도 있겠죠.
어쨋든 위의 의미는 무엇인고 하니 일단 height 300px 와 opacity 0.4가 나오는데 위에서도 말했듯이 height(높이)를 300px을 주고 0.4만큼 투명도를 주라는 의미입니다. 아래 코딩도 마찬가지로 해석하면 됩니다. 이렇게 되면 div 내용이 4번을 움직이게 됩니다.
관련 이미지
// "애니메이션 효과" 버튼을 클릭하면 위 그림처럼 효과를 볼 수 있습니다. 이미지로만 보면 딱딱 끊어지는 느낌이 있지만 직접 코딩하여 구현을 해보면 자연스럽게 바뀌는 현상을 볼 수 있습니다.
또 다른 예제
$("button").click(function(){
var div=$("div");
div.animate({left:'100px'},"slow");
div.animate({fontSize:'3em'},"slow");
});
// 좌측으로 100px 이동하고 fontSize 즉 글자 크기를 3em을 주는 의미 입니다. 그리고 옆에 slow 옵션이 추가 되어 있는데 말 그대로 느리게 하라는 의미입니다. "fast"값을 주어 빠르게 할수도 있겠죠.
관련 이미지
// animate()를 이용하여 여러가지 애니효과를 줄수 있습니다. 위 예제 말고도 응용하여 여러가지 재미있는 애니메이션 효과를 만들어보시기 바랍니다 ^^
다음장에서는 jQuery stop(), callback(), chaining() 관련 함수에 대해서 알아보겠습니다.
'jQuery > jQuery Effects' 카테고리의 다른 글
jQuery stop(),Callback,Chaining (0) | 2013.05.16 |
---|---|
jQuery Effects - Sliding (0) | 2013.05.14 |
jQuery fadeIn(), fadeOut(), fadeToggle(), fadeTo() (0) | 2013.05.13 |
jQuery hide(), show(), toggle() (0) | 2013.05.13 |