Back to the JavaScript

[jquery] 에니메이션 효과 animate/hide/show/fade/slide/delay | setInterval

Backcoder 2022. 8. 4. 12:55

[ jquery 에니메이션 효과 ] 

hide / show / fadeIn / fadeOut / slideDown / slideUp

delay / animate

 

 $("태그").효과( 1/1000sec ); 

: 태그에 밀리초 동안 효과주기  

 

$("h1:eq(0)").hide();

: 해당태그를 숨긴다 


$("h1:eq(0)").show();

: 해당태그를 나타나게한다. 

 

=> 조건 걸고, 어떨 땐 나타나고, 어떨 땐 숨기는 식으로 동적으로 사용 할 수 있다. 

-  시간은 주지 않고 사용 

 

$("h1:eq(1)").fadeOut(3000);

: 3초에 걸쳐서 사라짐 

 

$("h1:eq(1)").fadeIn(3000);

: 3초에 걸쳐서 나타남

 

$("h1:eq(2)").slideUp(3000);

: 3초에 걸쳐서 윗 라인으로 올라감 


$("h1:eq(2)").slideDown(3000);

: 3초에 걸쳐서 아랫라인으로 내려감 

$("h1:eq(3)").delay(2000);

: 2초 동안 딜레이 

 

 

[ animate ( );  직접 에니메이션 효과 만들기 ] 

 

$( ).animate( CSS등 사용자정의 효과, 1/1000초 );

: 태그에 사용자정의 효과를  몇초에 걸쳐 나타내겠다. 


$("h1:eq(3)").animate(

{
     width : "1000px",
     backgroundColor : "blue"

} 

5000
      );

 

=> 태그에 CSS 속성효과 1000너비, 배경색 blue로 SET 하는 효과를 5초에 걸쳐 주겠다. 

( 색깔은 jquery-ui 라이브러리 필요 ) 



 

[  setInterval 이벤트로 에니메이션 효과 만들기 ]

let count = 0;
let timer;
$("#start").on("click", function(){
if (timer != undefined ){ clearInterval(timer);}
    timer = setInterval(function(){
$("img").attr("src",
"../animationimages/" + img_ar[count % img_ar.length]);
count++;
}, 50);
$("img").css("width","200px");
$("img").css("height","200px");
//$("img").css("float","right");
});

 

-setInterval 로 밀리초 마다 

img 태그를 찾아 attr를 이용해 src 속성에 새로운 사진 URL 을 준다.  

- 새로운 사진을 주는건 변수에 사진 파일명을 담은 배열을 담아두고, 

- count++ 변수를 setInterval에 걸어두면 함수 실행될때마다 

++ 된 값을 사진 index 번호로 붙여서 가져올 수 있다. 

- % 를 이용해서 인덱스 번호 반복 사용 가능 

- 사진배열 index 를 이용하는건 이렇게 차례대로 가져와서 사용할 수 도 있고, 

math.random 난수로 랜덤한 사진을 가져올 수 도 있고, 

따로 조건을 걸어 사용하는 등, 다양한 방법으로 애니메이션 효과를 만들 수 있다.