원문 링크 http://api.jquery.com/fadeTo/
개요 : 투명도를 지정하여 페이드를 조절합니다.
- .fadeOut( [duration] [, callback] )
- duration 시간 값
- opacity 0 ~ 1 사이의 투명도 값
- callback 콜백 함수
- .fadeTo( duration, opacity [, easing] [, callback] )
- duration 시간 값
- opacity 0 ~ 1 사이의 투명도 값
- easing 특수한 효과 함수
- callback 콜백 함수
.fadeTo()
함수는 투명도를 조절하여 움직임을 만들어 내는 함수입니다.
Durations 의 단위는 밀리세컨드(천분의 일초)입니다. 큰 값을 주면 느린 속도로 움직이고, 반대는 빨라집니다. 'fast'
나 'slow'
문자를 사용할 수 있으며 각각은 200
과 600
밀리세커드를 의미합니다. 만약 이 인자를 생략하면 기본값인 400
밀리세컨드로 움직이게 됩니다. 다른 효과 함수들과는 조금 다르게, .fadeTo()
함수는 반드시 시간(duration)을 명시해 주어야 합니다.
이미지를 나타나게 하는 간단한 예제를 보시죠.
<div id="clickme"> Click here </div> <img id="book" src="book.png" alt="" width="100" height="123" /> With the element initially shown, we can dim it slowly: $('#clickme').click(function() { $('#book').fadeTo('slow', 0.5, function() { // Animation complete. }); });
duration
값을 0
으로 하면, 이 함수는 opacity
CSS 속성을 바꿔줍니다. 그래서 .fadeTo(0, opacity)
은 .css('opacity', opacity)
코드와 같은 효과를 나타냅니다.
.fadeIn()
를 포함하여 모든 jQuery effect 들은, 글로벌 세팅인 jQuery.fx.off = true
로 조절할 수 있습니다. 더 많은 정보를 원하시면 jQuery.fx.off를 참고하십시오.
헉!! fadeIn + fadeOut 이랑 아주 비슷하네요. 요번에두 거저 먹었어요. ㅎㅎㅎ
예 제
첫번째 p 요소만 투명도(opacity)를 0.33 (33%) 만큼 처리합니다. 600 milliseconds 가 소요됩니다..
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <p> Click this paragraph to see it fade. </p> <p> Compare to this one that won't fade. </p> <script> $("p:first").click(function () { $(this).fadeTo("slow", 0.33); }); </script> </body> </html>
미리보기
친절하게 위아래 비교해보라네요. ^^
예 제
클릭 때마다 랜덤하게 투명도를 조절합니다. 200 milliseconds 를 기준으로 합니다..
<!DOCTYPE html> <html> <head> <style> p { width:80px; margin:0; padding:5px; } div { width:40px; height:40px; position:absolute; } div#one { top:0; left:0; background:#f00; } div#two { top:20px; left:20px; background:#0f0; } div#three { top:40px; left:40px; background:#00f; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <p>And this is the library that John built...</p> <div id="one"></div> <div id="two"></div> <div id="three"></div> <script> $("div").click(function () { $(this).fadeTo("fast", Math.random()); }); </script> </body> </html>
미리보기
박스들이 겹쳐 있어서 클릭을 잘 해야 합니다. 뭐 예제를 위한 예제입니다.
예 제
맞는 답을 찾아라!! 클릭하면 답을 보여줍니다.
<!DOCTYPE html> <html> <head> <style> div, p { width:80px; height:40px; top:0; margin:0; position:absolute; padding-top:8px; } p { background:#fcc; text-align:center; } div { background:blue; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <p>Wrong</p> <div></div> <p>Wrong</p> <div></div> <p>Right!</p> <div></div> <script> var getPos = function (n) { return (Math.floor(n) * 90) + "px"; }; $("p").each(function (n) { var r = Math.floor(Math.random() * 3); var tmp = $(this).text(); $(this).text($("p:eq(" + r + ")").text()); $("p:eq(" + r + ")").text(tmp); $(this).css("left", getPos(n)); }); $("div").each(function (n) { $(this).css("left", getPos(n)); }) .css("cursor", "pointer") .click(function () { $(this).fadeTo(250, 0.25, function () { $(this).css("cursor", "") .prev().css({"font-weight": "bolder", "font-style": "italic"}); }); }); </script> </body> </html>
미리보기
이 방식 그대로 실제 시험문제 관련 사이트에 사용하시면 안됩니다. ㅎㅎ 답이 다 노출되잖아요.
특정 시점까지 페이드 효과를 주고 싶으면 이 함수를 사용해야 겠네요.
그럼 즐프하세요.
※ 본 예제는 http://www.jquery.com 에 있는 내용임을 밝힙니다.
'프로그래밍 > jQuery' 카테고리의 다른 글
hide(), 요소 숨기기 (2) | 2012.04.19 |
---|---|
jQuery.fx.off, 전체 애니메이션 효과 전역 설정 (0) | 2012.04.19 |
jQuery.fx.interval, 에니메이션 프레임 조절 (0) | 2012.04.16 |
fadeToggle(), 페이드 인/아웃 토글 (0) | 2012.04.16 |
fadeOut(), 서서히 사라지게 하기 (0) | 2012.04.16 |
fadeIn(), 서서히 나타나게 하기 (0) | 2012.04.16 |
dequeue(), 대기열의 다음 함수 실행 (2) | 2012.04.16 |
delay(), 대기열의 함수 실행을 지연시키기 (0) | 2012.04.16 |