문서 객체를 보이게 했다가 안보이게 하려면 css의 display 속성을 이용해야 한다.

단, css를 이용하는 방법은 객체를 단순하게 조절하는 정도의 효과만 기대할 수 있다.

효과(Effect)메소드를 이용하면 css를 이용하는 것 보다 좀 더 역동적으로 동작을 조절하여 객체를 화려하게 숨기거나 

보이게 만들 수 있다.

애니메이션 메소드까지 사용하면 선택한 요소에 다양한 동작(Motion)까지 적용 할 수 있다.

 

효과 메소드

  효과(Effect)메소드에는 선택한 요소를 역동적으로 숨겼다가 보이게 만드는 기능을 가진 메소드가 있다.

 

  다음은 효과 메소드의 종류를 간략히 정리한 표이다.

구분 종류 설명
숨김 hide() 요소를 숨긴다
fadeOut() 요소가 점점 투명해지면서 사라진다
slideUp() 요소가 위로 접히며 숨겨진다.
노출 show() 숨겨진 요소가 노출된다
fadeIn() 숨겨진 요소가 점점 선명해진다
slideDown() 숨겨진 요소가 아래로 펼쳐진다
노출, 숨김 toggle() hide(), show() 효과를 적용한다.
fadeToggle() fadeIn(), fadeOut() 효과를 적용한다.
slideToggle() slideUp(), slideDown() 효과를 적용한다.
fadeTo() 지정한 투명도를 적용한다.

효과 메소드의 기본형

  효과 메소드는 효과 소요시간, 가속도, 콜백 함수를 인자값으로 전달 할 수 있다.  

  다음은 효과 메소드의 기본형이다.

$("요소 선택").효과 메소드(효과 소요시간, 가속도, 콜백함수);

 

  효과 소요시간은 요소를 숨기거나 노출할 때 소요되는 시간이다.

  효과 소요시간은 다음과 같이 적용할 수 있다.

방법 1: "show","nomal","fast"
방법 2: 1.000(1초), 500(0.5초)

 

  가속도은 숨기거나 노출하는 동안의 가속도를 설정한다.

  가속도에 적용할 수 있는 값은 다음과 같다.

방법 1: "swing"
시작과 끝은 느리게, 중간은 빠른 속도로 움직인다(기본값)

방법 2: "linear"
일정한 속도로 움직인다.

 

  콜백 함수는 노출과 숨김 효과가 끝난 후에 실행할 함수이다. 콜백함수는 생략 할 수 있다.

  

  다음은 id값이 'box'인 요소를 2초간 위로 올려 숨기는 예로, 가속도는 "inner"다. 요소가 숨겨지면 콜백 함수가 

  실행되어 "hello"라는 메시지가 나타난다.

$("#box").slideUp(2000, "linear", function(){
 alert("hello");
});

fadeTo()메소드

  다음은 fadeTo()메소드의 기본형이다.

$("요소 선택").fadeTo(효과 소요 시간, 투명도, 콜백 함수);

  투명도는 0~1까지의 값을 입력할 수 있다. 1에 가까울수록 선명하게 보인다.

 

  다음은 버튼을 누르면 다양한 효과가 적용되는 예제이다.

<script>
  $(function(){
    $(".btn2").hide();

    $(".btn1").on("click", function(){
      $(".box").slideUp(1000, "linear",
      function(){
        $(".btn1").hide();
        $(".btn2").show();
      });
    });
    //[slideUp]버튼을 클릭하면 class값이 "box"인 요소가 
    //위로 접히며 숨겨진다.
    //그런 다음 콜백 함수가 실행되어 [slideUp]버튼은
    //숨겨지고 [fadeIn]버튼이 나타난다.
    $(".btn2").on("click", function(){
      $(".box").fadeIn(1000, "swing",
      function(){
        $(".btn2").hide();
        $(".btn1").show();
      });
    });

    $(".btn3").on("click", function(){
      $(".box").slideToggle(1000,"linear");
    });
    //[toggleSlide]버튼을 클릭하면 class값이 "box"인 요소가 접히거나
    //펴진다.
    $(".btn4").on("click", function(){
      $(".box").fadeTo("fast", 0.3);
    });

    $(".btn5").on("click", function(){
      $(".box").fadeTo("fast", 1);
    });
    //fadeTo(0, 3)을 클릭하면 class값이 "box"인 요소가 70%투명해진다
    //다시 클릭하면 투명화를 취소한다.
  });
</script>
<style>
  .content{
    width:400px;
    background-color:#eee;
  }
</style>
</head>
<body>
  <p>
    <button class="btn1">slideUp</button>
    <button class="btn2">fadeIn</button>
  </p>
  <p>
    <button class="btn3">toggleSlide</button>
  </p>
  <p>
    <button class="btn4">fadeTo(0,3)</button>
    <button class="btn5">fadeTo(1)</button>
  </p>
  <div class="box">
    <div class="content">
      Lorem ipsum dolor sit amet. consectetur adipiscing elit. Ut...
      ...
    </div>
  </div>
</body>

 

동작을 불어넣는 애니메이션 메소드

  애니메이션 메소드를 적용하면 스타일을 적용한 요소를 움직이게 할 수 있다.

 

animate() 메소드

  선택한 요소에 다양한 동작(Motion)효과를 적용할 수 있다.

  예를들어 요소를 앞으로 이동시키거나 점차 커지게 하는 등 다양한 동작을 적용할 수 있다.

 

  다음은 animate() 메소드의 기본형이다.

$("요소 선택").animate({스타일 속성}, 적용 시간, 가속도, 콜백함수)

  스타일 속성은 애니메이션으로 적용할 스타일 속성이다.

  적용 시간은 동작에 반응하는데 소요되는 시간이며, 적용 시간의 옵션은 효과 함수에 적용한 것과 같다.

 

  다음은 버튼을 클릭하면 지정한 요소에 애니메이션이 적용되는 예제이다.

<script>
  $(function(){
    $(".btn1").on("click", function(){
      $(".txt1").animate({
        marginLeft:"500px",
        fontSize:"30px"
      },
      2000, "linear", function(){
        alert("모션 완료!");
      });
    });

    $(".btn2").on("click", function(){
      $(".txt2").animate({
        marginLeft:"+=50px"
      }, 1000);
    });
  });
</script>
<style>
  .txt1{background-color:aqua;}
  .txt2{background-color:pink;}
</style>
</head>
<body>
  <p><button class="btn1">버튼1</button></p>
  <span class="txt1">"500px"이동</span>
  <p><button class="btn2">버튼2</button></p>
  <span class="txt2">"50px"씩 이동</span>
</body>

(참고 : do it 자바스크립트+제이쿼리 입문)

'Front > JQuery' 카테고리의 다른 글

JQuery(비동기방식연동 Ajax)  (0) 2020.05.26
JQuery(애니메이션 효과 제어 메소드)  (0) 2020.05.26
JQuery(그룹이벤트)  (0) 2020.05.22
JQuery(이벤트 객체)  (0) 2020.05.22
JQuery(이벤트 등록 메소드)  (0) 2020.05.22

+ Recent posts