💡깨달음💡/jQuery

jQuery의 메서드(4)

과부하가즈아 2024. 2. 9. 15:45

🔴이펙트 효과 관련 메서드

🔻요소의 표시와 숨김

🔻fade 효과

🔻slide 효과

🔻이펙트 제어

🔻사용자 정의 이펙트_.animate()


이펙트(effect) 효과

이펙트 효과는 기본 설정으로 바로 사용할 수도 있고, animate() 메소드를 통해 설정을 변경해서 사용할 수도 있다.


요소의 표시와 숨김

.show() 선택 요소 보이기, 표시하기
.hide() 선택 요소 감추기
.toggle() 선택 요소 표시하기/감추기

 

✔️ ( )안에는 지속시간을 넣어주면 된다. 작성하지 않을 경우 기본 값이 자동으로 설정되어 효과에 반영되어 진다. ' ' 안에 작성하면 되고 'fast', 'slow'처럼 문자로 작성하거나 '3s'로 작성하면 된다. 5000, 2000 처럼 숫자를 작성할 경우 ' '는 필요없다.

fast - 2000ms
normal - 400ms
slow - 600ms

$(".show").click(function () {
  $("div").show();
});
$(".hidden").click(function () {
  $("div").hide();
});
$(".toggle").click(function () {
  $("div").toggle();
});


fade 효과

.fadeIn() 선택한 요소의 CSS opacity 속성값을 높여가며 요소를 나타지게 함.
.fadeOut() 선택한 요소의 CSS opacity 속성값을 높여가며 요소를 사라지게 함.
.fadeTo() 페이드 효과에서 사용하는 opacity 속성값을 직접 설정함.
.fadeToggle() 선택한 요소에 fadeIn() 메소드와 fadeOut() 메소드를 번갈아가며 적용함.

$(".show").click(function () {
  $("div").fadeIn();
});
$(".hidden").click(function () {
  $("div").fadeOut();
});
$(".toggle").click(function () {
  $("div").fadeToggle();
});


slide 효과

해당 요소의 CSS height 속성값을 빠르게 변경하여 표현한다. 인수로 밀리초에 해당하는 숫자나 "slow", "fast" 등의 예약어를 전달하여, 슬라이드 효과의 속도를 조절할 수도 있다.

.slideUp() 선택한 요소의 CSS height 속성값을 높여가며 요소를 사라지게 함.
.slideDown() 선택한 요소의 CSS height 속성값을 낮춰가며 요소를 나타나게 함.
.slideToggle() 선택한 요소에 slideUp() 메소드와 slideDown() 메소드를 번갈아가며 적용함.

$(".show").click(function () {
  $("div").slideDown();
});
$(".hidden").click(function () {
  $("div").slideUp();
});
$(".toggle").click(function () {
  $("div").slideToggle();
});


이펙트 효과의 제어

.delay() 실행 중인 큐 안에서 연속적으로 실행되는 이펙트 효과 사이의 지연 시간을 설정함.
.stop() 선택한 요소에서 실행 중인 모든 이펙트 효과를 즉시 중지시킴.
.finish() 선택한 요소에서 실행 중인 모든 이펙트 효과를 즉시 중지시키고, 선택한 요소가 포함된 큐까지 제거하여 모든 이펙트 효과를 전부 종료시킴.

delay

$(function() {
    $("#startBtn").on("click", function() {

        // id가 "divBox"인 요소를 0.5초에 걸쳐 사라지게 하고
        // 1초의 지연시간 뒤에 다시 2초에 걸쳐 나타나게 함.
        $("#divBox").fadeOut(500).delay(1000).fadeIn(2000);
    });
});

stop, finish

$(function() {
    $("#toggleBtn").on("click", function() {

        // id가 "divBox"인 요소를 2초에 걸쳐 올라가면서 사라지거나 내려오면서 나타나게 함.
        $("#divBox").slideToggle(2000);
    });

    $("#stopBtn").on("click", function() {

        // id가 "divBox"인 요소에서 실행 중인 모든 이펙트 효과를 즉시 중지시킴.
        $("#divBox").stop();
    });

    $("#finishBtn").on("click", function() {

        // id가 "divBox"인 요소에서 실행 중인 모든 이펙트 효과를 즉시 중지시키고, 그 큐까지 모두 제거함.
        $("#divBox").finish();
    });
});

사용자 정의 이펙트

.animmate() 메소드를 이용하여 사용자가 직접 원하는 이펙트 효과를 정의할 수 있다. .animate() 메소드는 여러 CSS 속성을 이용하여 새로운 이펙트 효과를 만들어 준다. 

$(선택자).animate(프로퍼티[,지속시간][,시간당속도함수][,콜백함수]);
  • 프로퍼티: 필수 값으로 이펙트 효과를 구성할 CSS 속성을 정의한다.
  • 지속시간: 이펙트 효과가 지속될 시간을 전달한다.
  • 시간당 속도 함수: 이펙트 효과의 시간당 속도를 전달한다.
  • 콜백 함수: 이펙트 효과의 동작이 완료된 후에 실행할 함수를 정의한다.

사용가능한 CSS속성

색(color)에 관한 속성을 제외한 거의 모든 CSS 속성을 사용할 수 있다.(camelCase방식의 속성 명만 사용가능)