[jQuery] jQuery 효과 (Show/Hide, Fade, Slide, Callback)

2022. 6. 13. 13:43JavaScript/jQuery

1. jQuery 효과

  • jQuery는 선택자로 선택된 태그를 사라지게 하거나 나타나게 할 수 있습니다. 이 때, 몇가지 효과를 제공하고 있음

2. hide/show

  • hide : 선택된 태그를 사라지게 한다
  • show : 선택된 태그를 나타나게 한다
  • toggle : 사라지거나 나타나는 상태를 전환한다
  • hide(시간), show(hide), toggle(시간) : 지정된 시간만큼 애니메이션 효과가 나타난다.
    • 시간 : 밀리초 단위
  • 시간은 “slow”라는 문자열을 넣어주면 적당히 느린 시간, “fast”를 넣어주면 적당히 짧은 시간이 설정된다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    function div_hide(){
        // $("#a1").hide();
        // $("#a1").hide(1000);
        // $("#a1").hide("slow");
        $("#a1").hide("fast");
    }
    function div_show(){
        // $("#a1").show();
        // $("#a1").show(1000);
        // $("#a1").show("slow");
        $("#a1").show("fast");
    }
    function div_toggle(){
        // $("#a1").toggle();
        // $("#a1").toggle(1000);
        // $("#a1").toggle("slow");
        $("#a1").toggle("fast");
    }
</script>
<style>
    #a1{
        border: 1px solid black;
        background-color: yellow;
        width: 200px;
        height: 200px;
    }
</style>
</head>
<body>
    <button onclick="div_hide()">hide</button>
    <button onclick="div_show()">show</button>
    <button onclick="div_toggle()">toggle</button>
    <div id="a1"></div>
</body>
</html>

위 결과에서 hide를 누르면 노란색 박스가 없어지고 show 박스를 누르면 노란색 박스가 다시 나타납니다. toogle 버튼을 눌렀을때 노란색 박스가 존재하면 hide하고 노란색 박스가 없다면 show합니다.

3. fade in, fade out

  • fadeIn : 페이드 효과를 통해 나타나게 됨
  • fadeOut : 페이드 효과를 통해 사라지게 됨
  • faseToggle : 페이드 효과를 통해 사라지거나 나타나는 상태를 전환함
  • fadeTo : 지정된 투명도 만큼 페이드 아웃함
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    function div_fadeOut(){
        $("#a1").fadeOut("slow");
    }
    function div_fadeIn(){
        $("#a1").fadeIn("slow");
    }
    function div_fadeToggle(){
        $("#a1").fadeToggle("slow");
    }
    function div_fadeTo(){
        $("#a1").fadeTo("slow", 0.3);
    }
</script>
<style>
    #a1{
        border: 1px solid black;
        background-color: yellow;
        width: 200px;
        height: 200px;
    }
</style>
</head>
<body>
    <button onclick="div_fadeOut()">fade out</button>
    <button onclick="div_fadeIn()">fade in</button>
    <button onclick="div_fadeToggle()">fade toggle</button>
    <button onclick="div_fadeTo()">fade to</button>
    <div id="a1"></div>
</body>
</html>

  • fade out 버튼 클릭 : 노란색 박스가 사라짐
  • fade in 버튼 클릭 : 노란색 박스가 나타남
  • fade toggle 버튼 클릭 : 노란색 박스가 사라지거나 나타남
  • fade to 버튼 클릭 : 노란색 박스가 특정 수치만큼 투명해짐

 

4. slide down/slide up

  • slideUp : 위로 슬라이드 되면서 사라짐
  • slideDown : 아래로 슬라이드 되면서 나타남
  • slideToggle : 슬라이드 효과를 통해 사라지거나 나타나는 상태를 전환함
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    function div_slideUp(){
        $("#a1").slideUp("slow");
    }
    function div_slideDown(){
        $("#a1").slideDown("slow");
    }
    function div_slideToggle(){
        $("#a1").slideToggle("slow");
    }
</script>
<style>
    #a1{
        border: 1px solid black;
        background-color: yellow;
        width: 200px;
        height: 200px;
    }
</style>
</head>
<body>
    <button onclick="div_slideUp()">slideUp</button>
    <button onclick="div_slideDown()">slideDown</button>
    <button onclick="div_slideToggle()">slideToggle</button>
    <div id="a1"></div>
</body>
</html>

  • slideUp 버튼 클릭시 : 노란색 박스가 위로 말려들어가면서 사라짐
  • slideDown 버튼 클릭시 : 노란색 박스가 위에서 아래로 나타남
  • slideToggle 버튼 클릭시 : 노란색 박스가 사라지거나 나타남

 

5. callback 함수

  • 앞서 살펴본 효과가 종료되면 자동으로 호출되는 함수를 등록할 수 있음
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery 실습</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    function div_hide(){
        $("#a1").hide("slow", function(){
            alert("animation end");
        });
    }
</script>
<style>
    #a1{
        border: 1px solid black;
        background-color: yellow;
        width: 200px;
        height: 200px;
    }
</style>
</head>
<body>
    <button onclick="div_hide()">hide</button>
    <div id="a1"></div>
</body>
</html>

 

Reference

source code : https://github.com/yonghwankim-dev/jQuery_study/tree/main/Effect/src/main/webapp
윤재성의 처음 시작하는 jQuery Programming