jQuery Effect
Table of contents
Effects Methods
What are Effects?
효과를 내는 메소드들을 말함,
Hide, Show, Toggle, Slide, Fade, Animate가 있음
Hide and Show
hide(), show()
▸ 보이고(show) 숨길때(hide) 사용
syntax
$(selector).hide(speed,callback); $(selector).show(speed,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("#hide").click(function(){
$("p").hide();
});
$("#show").click(function(){
$("p").show();
});
toggle()
▸ 토글버튼 생성시 사용
syntax
$(selector).toggle(speed,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("button").click(function(){
$("p").toggle();
});
Fading
fade an element in and out of visibility
FadeIn()
▸ 보이지 않는 요소를 보이게 할때 사용
syntax
$(selector).fadeIn(speed,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("button").click(function(){
$("#div1").fadeIn();
$("#div2").fadeIn("slow");
$("#div3").fadeIn(3000);
});
fadeOut()
▸ 보이는 요소를 보이지 않게 할때 사용
▸ 원래 자리까지 없애버림
syntax
$(selector).fadeOut(speed,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("button").click(function(){
$("#div1").fadeOut();
$("#div2").fadeOut("slow");
$("#div3").fadeOut(3000);
});
fadeToggle()
▸ fadeIn()과 fadeOut() 합친 버튼
▸ 원래 자리까지 없애버림
syntax
$(selector).fadeToggle(speed,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("button").click(function(){
$("#div1").fadeToggle();
$("#div2").fadeToggle("slow");
$("#div3").fadeToggle(3000);
});
fadeTo()
▸ fading to a given opacity
▸ value between 0 and 1
syntax
$(selector).fadeTo(speed,opacity,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ opacity(required) : fading to a given opacity (value between 0 and 1)
▸ callback(optional) : a function to be executed after method
$("button").click(function(){
$("#div1").fadeTo("slow", 0.15);
$("#div2").fadeTo("slow", 0.4);
$("#div3").fadeTo("slow", 0.7);
});
Sliding
slideDown()
▸ slide down an element
syntax
$(selector).slideDown(speed,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("#flip").click(function(){
$("#panel").slideDown();
});
slideUp()
▸ slide up an element
syntax
$(selector).slideUp(speed,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("#flip").click(function(){
$("#panel").slideUp();
});
slideToggle()
▸ toggles between the slideDown() and slideUp()
syntax
$(selector).slideToggle(speed,callback);
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("#flip").click(function(){
$("#panel").slideToggle();
});
Animation
animate()
▸ create custom animations
▸ 거의 모든 CSS요소를 수정가능하지만, 카멜 표기법으로 사용해야함. (ex padding-left → paddingLeft )
▸ 색상을 바꾸는건 플러그인이 다름. jQuery.com
syntax
$(selector).animate({params},speed,callback);
▸ params(required) : CSS properties to be animated.
▸ speed(optional) : slow, fast, miliseconds
▸ callback(optional) : a function to be executed after method
$("button").click(function(){
$("div").animate({left: '250px'});
});
or
$("button").click(function(){
$("div").animate({
left: '250px',
opacity: '0.5',
height: '150px',
width: '150px'
});
});
!Note
기본적으로 html 요소는 static이 기본 포지션,
따라서 움직이고 싶게 만들려면 static이 아닌 다른 포지션값을 가지고 있어야 함
Animation Features
,로 애니메이션 중복가능
$("button").click(function(){ $("div").animate({ left: '250px', opacity: '0.5', height: '150px', width: '150px' }); });
상대값 사용가능
$("button").click(function(){ $("div").animate({ left: '250px', height: '+=150px', width: '+=150px' }); });
예약어 사용가능
$("button").click(function(){ $("div").animate({ height: 'toggle' //show, hide, toggle }); });
큐기능 사용 가능
순차적으로 애니메이션을 실행시키고 싶을때
$("button").click(function(){ var div = $("div"); div.animate({left: '100px'}, "slow"); div.animate({fontSize: '3em'}, "slow"); });
시간당 속도 함수 사용가능
시간당 속도 함수(easing function)을 사용하여 이펙트 효과의 시간당 속도를 설정할 수 있음
swing : 시작 / 끝에서는 느리게 움직이지만 중간에서는 빨라짐
linear : 일정한 속도로 움직임
$("#btnStart").on("click", function(){ $(".bar").stop().animate({ width: "400px" }, 2000, "linear"); // 시간당 속도 함수를 "linear"으로 설정함. }); $("#btnEnd").on("click", function(){ $(".bar").stop().animate({ width: "1px" }, 2000, "swing"); // 시간당 속도 함수를 "swing"으로 설정 });
Effect Control
stop()
▸ 선택한 요소에서 실행 중인 모든 이펙트 효과를 일시적으로 중지
▸ works for all jQuery effect functions, including sliding, fading and custom animations
syntax
$(selector).stop(stopAll,goToEnd);
▸ stopAll(optional) : whether also the animation queue should be cleared or not (default = false)
which means that only the active animation will be stopped, allowing any queued animations to be performed afterwards
▸ goToEnd(optional) : function to be executed after method (default = false)
$("#stop").click(function(){
$("#panel").stop();
});
delay()
▸ 실행 중인 큐 안에서 연속적으로 실행되는 이펙트 효과 사이의 지연 시간을 설정
$("button").on("click", function() {
$("div.first").slideUp(300).fadeIn(400);
$("div.second").slideUp(300).delay(500).fadeIn(400);
$("div.third").slideUp(300).delay(1000).fadeIn(400);
});
finish()
▸ 선택한 요소가 포함된 큐까지 제거하여 모든 이펙트 효과를 전부 종료
$("button#start").on("click", function() {
$("div").animate({width: 300, height: 300}, 3000);
});
$("button#finish").on("click", function() {
$("div").finish();
});
.delay()와 .finish()의 차이점
둘다 이펙트 효과를 멈춘다는 점이 동일함
차이점은 .stop() 메소드는 일시적으로 중지를 시키는 반면
.finish() 메소드는 중지가 아닌 아예 종료시킨다는 점이 다름
즉, .stop() 메소드로 중지를 시키면 다시 재개할 수 있지만
.finish() 메소드는 다시 재개할 수 없고 처음부터 다시 실행을 시켜야 함