티스토리 뷰
출처 : javaScript jQuery 입문
T17-1 jQuery 기본 효과
show (speed,[callback]) |
문서 객체를 크게 하며 보여줌 |
hide (speed,[callback]) |
문서 객체를 작게 하며 사라짐 |
toggle (speed,[callback]) |
Show(), hide()번갈아 실행함 |
slideDown (speed,[callback]) |
문서 객체를 슬라이드 효과와 함께 보여줌 |
slideUp (speed,[callback]) |
문서 객체를 슬라이드 효과와 함께 사라짐 |
slideToggle (speed,[callback]) |
slideDown(),slideUp() 메서드를 번갈아 실행함 |
fadeIn (speed,[callback])) |
문서 객체를 선명하게 하며 보여줌. |
fadeOut (speed,[callback]) |
문서 객체를 흐리게 하며 사라지게 함 |
fadeToggle([duration] [,easing] [,callback]) |
fadeIn(),fadeOut() 메서드를 번갈아 실행함 |
17.1 저수준의 시각적 효과
1) speed : 밀리초 단위의 숫자나 문자열 slow, normal, fast 를 입력합니다.
2) callback : 효교과를 모두 완료한 후에 실행 할 함수를 지정합니다.
3) easing : 애니메이션 easing속성을 지정합니다. 기본 (linear,swing)
코드 17-3 hide()메소드와show()메소드
- <!DOCTYPE html>
- <html>
- <head>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script>
- // next() => #next1
- }, function () {
- // next() => #next2
- });
- });
- </script>
- </head>
- <body>
- <h1>OPEN & CLOSE</h1>
- <div id="next1">
- <h1>Lorem ipsum</h1>
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
- </div>
- <h1>OPEN & CLOSE</h1>
- <div id="next2">
- <h1>Lorem ipsum</h1>
- <p>Aenean vel augue dolor, at rhoncus tortor.</p>
- </div>
- </body>
- </html>
17.2 Innerfade 플러그인
1) 간단한 화면 전환 효과
2) http://medienfreunde.com/lab/innerfade/
표17-2 innerfade() 메소드의 옵션 객체 속성
animationtype |
내용의 변경 효과 |
fade, slide |
speed |
내용의 변경 속도 |
slow , normal, fast , 숫자 |
timeout |
변경 효과가 적용되는 속도 |
숫자 (2000)기본값 |
type |
내용의 변경 방식 |
Sequence, random, random_start |
containerheight |
내용의 높이 |
auto , 숫자 |
코드 17-7 innerfade()메서드
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- * { margin:0px; padding:0px; }
- ul { list-style:none; }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script src="jquery.innerfade.js"></script>
- <script>
- // innerfade 플러그인을 적용합니다.
- $('#inner_fade').innerfade({
- animationtype: 'fade',
- speed: 750,
- timeout: 2000,
- type: 'random',
- containerheight: '350px'
- });
- });
- </script>
- </head>
- <body>
- <ul id="inner_fade">
- <li><img src="Chrysanthemum.jpg"/></li>
- <li><img src="Desert.jpg"/></li>
- <li><img src="Hydrangeas.jpg"/></li>
- <li><img src="Jellyfish.jpg"/></li>
- <li><img src="Koala.jpg"/></li>
- <li><img src="Lighthouse.jpg"/></li>
- <li><img src="Penguins.jpg"/></li>
- </ul>
- </body>
- </html>
17.3 사용자 지정 효과
표17-3 jQuery 사용자 지정 효과 메서드
animate(params , duration, easing, callback) |
사용자 지정 효과를 생성함. |
1) params : opacity , top , left, right , bottom , height , width , margin , padding
코드 17-10 animate()메서드
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- div {
- background-color:Orange;
- border: 1px #ff0000 solid;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script>
- },
- function () {
- });
- });
- </script>
- </head>
- <body>
- <div>클릭</div>
- <div>클릭</div>
- <div>클릭</div>
- </body>
- </html>
17.4 상대적 애니메이션
1) 현재 스타일 속성을 알아내 추가 값을 부여해 상대적으로 애니메이션을 적용
코드 17-15 현재 상태를 기준으로한 상대적 애니메이션
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- div {
- background-color:Orange;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script>
- // animate() 메서드를 사용합니다. 현재크기를 참고로 계속 커짐
- });
- });
- </script>
- </head>
- <body>
- <div>계속 커짐</div>
- </body>
- </html>
T17-4~6 jQuery 메서드 (효과)
효과 애니메이션 큐의 내용을 제거함. | |
효과와 애니메이션을 정지함 (애니메이션 큐 남은 것을 실행) | |
delay( duration [,queueName]) | 큐에 있는 명령을 일정 시간뒤에 실행하게 함. |
17.5 애니메이션 큐
1) 이해 : stop(clearQueue , goToEnd)
2) 선택된 엘리먼트의 애니메이션이 엘리먼트 기준으로 큐에 쌓인다.
그림1
3) 실행될 때는 애니메이션 큐에 먼저 들어간 것 부터 실행된다.
그림2
4) clearQueue()는 큐의 내용을 삭제 한다.
코드 17-16
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- div {
- background-color:Orange;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script>
- // +=100 (현재 에서 100 만큼 변화) 체이닝
- });
- // #move 큐 삭제
- $('#move').clearQueue();
- });
- // #move 실행 애니메이션 중지
- });
- });
- </script>
- </head>
- <body>
- <button id="queue"> 큐삭제 : clearQueue() </button>
- <p>
- <div id="move">클릭움직임</div>
- </body>
- </html>
Q. 체이닝을 하지 않을 때 결과?
17.6 애니메이션 정지
1) $(selector).stop(); == $(selector).stop(false,false);
◆ 실행 애니메이션을 정지한다.
◆ 기본값 (false,false).
2) $(selector).stop(clearQueue , goToEnd);
◆ 애니메이션큐를 삭제 한다
◆ clearQueue : true => 효과 애니메이션 큐의내용을 제거
◆ goToEnd: true => 실행중인 애니메이션 최종위치로바로이동
코드17-20
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- div {
- background-color:Orange;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script>
- // 이벤트를 연결합니다.
- // 변수를 선언합니다.
- /* evalText?
- * 1. evalText = "$('div').stop()"
- * 2. evalText = "$('div').stop(false ,false)"
- * 3. evalText = "$('div').stop(true)"
- * 4. evalText = "$('div').stop(stop(false, true))"
- * 5. evalText = "$('div').stop(true, true)"
- */
- // eval 자바스크립트 내장함수 문자열을 평가하고 스크립트 코드 인 것처럼 그것을 실행
- // http://www.w3schools.com/jsref/jsref_eval.ASP
- // 메서드를 실행합니다.
- eval(evalText);
- });
- // 애니메이션을 시작합니다.
- setInterval(function () {
- }, 2000);
- });
- </script>
- </head>
- <body>
- => 1. 현재 진행중인 애니메이션 삭제함니다. <br/>
- => 2. 현재 진행중인 애니메이션 삭제함니다. <br/>
- => 3. 현재 애니메이션 스텍에 있는것을 모두빼버립니다.<br/>
- => 4. 진행중인 애니메이션의 최종 위치에서 시작함 (진행중인 애니메이션시간0)<br/>
- => 5. 현재 애니메이션 스텍에 있는것을 모두빼버리고,진행중인 애니메이션의 최종 위치에서 시작함 (진행중인 애니메이션시간0)
- <p>
- <div>인터벌 자동실행</div>
- </body>
- </html>
17.7 애니메이션 지연
1) delay(duration) : 메서드의 매개 변수에 정지하려는 시간을 미리초 단위로 입력
[delay함수의 duration 파라미터 값을 미리 초단위로 입력 (1000 = 1초)]
코드 17-21
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- div {
- background-color:Orange;
- border:solid #ff0000;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script>
- /* each 앞에 꺼를 반복 실행합니다. */
- /* Type1 */
- // (index * 500)초 후 animate() 메서드를 실행합니다.
- /* Type2
- $(this).animate({ left: 500 }, 'slow')
- .delay(index * 500)
- .animate({ left: 250 }, 'slow');
- */
- /* Type3
- $(this).delay(index * 500)
- .animate({ left: 500 }, 'slow')
- .delay(index * 500)
- .animate({ left: 250 }, 'slow');
- */
- /* Type4 순자척으로 바로 실행하려면.?
- */
- // domElement 는 <div>0</div>....
- return domElement+"☆";
- })
- });
- });
- </script>
- </head>
- <body>
- <div>0</div>
- <div>1</div>
- <div>2</div>
- <div>3</div>
- <div>4</div>
- <div>5</div>
- </body>
- </html>
Q. 멈추는 시간없이 순차적으로 바로 실행하려면…?
17.8 jQuery Approach플러그인
1) jQuery Approach 플러그인은 마우스의 거리를 사용해 애니메이션을 발쌩시키는 플러그인
2) 다운로드 : http://srobbin.com/jquery-plugins/jquery-approach/
3) approach({ 스타일 } , 효과 적용거리 )
코드 17-25 approach()
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- * { margin:0px; padding:0px; }
- body { background:0x555; }
- #circle_wrapper {
- padding:10px;
- background-color:Black;
- overflow:hidden;
- }
- .circle {
- margin:5px;
- border-radius:25px;
- background-color:White;
- float:left;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script src="jquery.approach.js"></script>
- <script>
- var $div ="<div class='circle'></div>";
- for (i = 0; i < 10; ++i) {
- }
- /*
- * 첫번째 : 마우스 위치에 따라 변경될 속성
- * 두번째 : 마우스 위치에 따라 젹용되는 범위
- */
- /* type 1 */
- $('.circle').approach({ opacity: 0.2 }, 200);
- /* type 2 크기에따른 움직임
- */
- });
- </script>
- </head>
- <body>
- <div id="circle_wrapper">
- </div>
- </body>
- </html>
Q. 속성값을크기로 변경 해보기?
17.9 jQuery UI Effect 플러그인 다운로드
1) jQuery UI플러그인 공식사이트 : http://jqueryui.com/
2) jQuery UI Effect 기능
◆ 색상 애니메이션
◆ addClass() , removeClass(), switchClass() 메서드에 애니메이션 기능추가
◆ Easing 효과
17.10 jQuery UIEffect 플러그인 (1) – 색상 변환 애니메이션
1) addClass(class,speed)메서드와 removeClass(class,speed) 메서드의애니메이션
2) $('div').hover( over ,out );
코드 17-29
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- .reverse {
- color:White;
- background-color:Black;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
- <script>
- }, function () {
- });
- });
- </script>
- </head>
- <body>
- <div>
- <h1>Lorem ipsum</h1>
- <p>Lorem ipsum dolor sit amet</p>
- </div>
- <div>
- <h1>Lorem ipsum</h1>
- <p>Lorem ipsum dolor sit amet</p>
- </div>
- <div>
- <h1>Lorem ipsum</h1>
- <p>Lorem ipsum dolor sit amet</p>
- </div>
- </body>
- </html>
Q1. clearQueue() , stop() 사용하여 깔끔하게 수정?
(마우스에서 벗어난 엘리먼트의 최종 실행 애니메이션만 남기려면…)
Q2. 크기 , 위치 변경해보기?
#. 참고사항
addClass ,removeClass 으로 애니메이션줄때는 "코드 1"과 같이 stop(true,true) 하지않으면
현재 값을못찾아 애니메이션이 안될수있는 거 같습니다.
하지만 "코드 2"와같이 다른 메소드들은 애니메이션 앞에 stop() 로 clearQueue 와
goToEnd 속성을 true 줄필요가 없습니다. 애니메이션 전에 항상 stop() 이있어서 애니
메이션 큐에 애니메이션이 쌓이지 않고 현재 값에서 다음 애니메이션으로 진행되기 때문에
goToEnd 를 true 로 줄필요가 없습니다.
stop() 메소드 관련 내용은 http://cafe.naver.com/hjavascript/297 참고.
코드 1
- }, function () {
- });
코드 2
- }, function () {
- });
17.11 jQuery UIEffect 프러그인 (2) – easing 플러그인
1) 기존 jQuery를 사용할 때 교과 관련 메서드의 easing 속성에 문자열
“swing” ,”linear” 만으로 Easing을 줄수있다.
표17-7 다양한 중류의easing 속성
linear | swing |
|
easeInElastic | easeOutElastic | easeInOutElastic |
easeInBack | easeOutBack | easeInOutBack |
easeInBounce | easeOutBounce | easeInOutBounce |
easeInSine | easeOutSine | easeInOutSine |
easeInQuad | easeOutQuad | easeInOutQuad |
easeInCubic | easeOutCubic | easeInOutCubic |
easeInCirc | easeOutCirc | easeInOutCirc |
easeInQuart | easeOutQuart | easeInOutQuart |
easeInQuint | easeOutQuint | easeInOutQuint |
! easing.html : http://jqueryui.com/effect/#easing
코드17-32 easing속성을 사용한 animate()메서드
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- div {
- background-color:Orange;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
- <script>
- // 이벤트를 연결합니다.
- // 변수를 선언합니다.
- // animate() 메서드를 사용합니다.
- });
- });
- </script>
- </head>
- <body>
- <select>
- <option>linear</option>
- <option>swing</option>
- <option>easeInQuad</option>
- <option>easeOutQuad</option>
- <option>easeInOutQuad</option>
- <option>easeInCubic</option>
- <option>easeOutCubic</option>
- <option>easeInOutCubic</option>
- <option>easeInQuart</option>
- <option>easeOutQuart</option>
- <option>easeInOutQuart</option>
- <option>easeInQuint</option>
- <option>easeOutQuint</option>
- <option>easeInOutQuint</option>
- <option>easeInSine</option>
- <option>easeOutSine</option>
- <option>easeInOutSine</option>
- <option>easeInExpo</option>
- <option>easeOutExpo</option>
- <option>easeInOutExpo</option>
- <option>easeInCirc</option>
- <option>easeOutCirc</option>
- <option>easeInOutCirc</option>
- <option>easeInElastic</option>
- <option>easeOutElastic</option>
- <option>easeInOutElastic</option>
- <option>easeInBack</option>
- <option>easeOutBack</option>
- <option>easeInOutBack</option>
- <option>easeInBounce</option>
- <option>easeOutBounce</option>
- <option>easeInOutBounce</option>
- </select>
- <button>MOVE</button>
- <div></div>
- </body>
- </html>
코드17-32 easing속성을 사용한 animate()메서드 custom
- <!DOCTYPE html>
- <html>
- <head>
- <style>
- *{
- margin:0 ; padding:0;
- }
- .motion {
- background-color:Orange;
- /* 패딩값을주면 값만틈 움직임에 영향이 있습니다.
- * padding:5px 1px 1px 15px;*/
- }
- #boxs {
- background-color:#333;
- padding : 10px 0px 10px 0px;
- }
- </style>
- <script src="http://code.jquery.com/jquery-1.7.js"></script>
- <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
- <script>
- // 이벤트를 연결합니다.
- // 변수를 선언합니다.
- // animate() 메서드를 사용합니다.
- .delay(2000)
- });
- });
- });
- </script>
- </head>
- <body>
- <button id="btn1">MOVE BTN</button>
- <br/> <br/>
- <div id="boxs">
- <div class="motion">linear</div>
- <br/>
- <div class="motion">swing</div>
- <br/>
- <div class="motion">easeInOutElastic</div>
- <br/>
- <div class="motion">easeInOutBack</div>
- <br/>
- <div class="motion">easeInOutBounce</div>
- <br/>
- <div class="motion">easeInOutSine</div>
- <br/>
- <div class="motion">easeInOutQuad</div>
- <br/>
- <div class="motion">easeInOutCubic</div>
- <br/>
- <div class="motion">easeInOutCirc</div>
- <br/>
- <div class="motion">easeInOutQuart</div>
- <br/>
- <div class="motion">easeInOutQuint</div>
- </div>
- </body>
- </html>
'HMLT&CSS&JS > jQuery' 카테고리의 다른 글
# jQuery 회전 (0) | 2013.08.07 |
---|---|
# chapter06 객체지향 프로그래밍 (0) | 2013.02.04 |
1. jQuery 메소드 정리 (2) | 2012.09.10 |
1. Effects (0) | 2011.07.22 |
# jQuery 객체 선택자 Basic (0) | 2011.04.20 |
- Total
- Today
- Yesterday