모달윈도우 modal window-태그자동생성
핵심 point
특정 class에 css를 짜둔다.
특정태그를 변수에 담아서 생성하고, append, html 등으로 붙여서 화면에 뛰운다.


클릭전 화면






클릭후 화면





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
      <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <title>modalWindow</title>
            <script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
       
        <style type="text/css">
html,body{
      margin:0;
      padding:0;
      height:100%;
}
h1{
      margin:20px 50px;
      font-size:large;
      border-left:10px solid #7BAEB5;
      border-bottom:1px solid #7BAEB5;
      padding:10px;
      width:600px;
}
ul{
      width:700px;
}
ul li{
      float:left;
      list-style-type:none;
}
ul li img{
      border:0;
      margin:10px;
}
div#glayLayer{
      display:none;
      position:fixed;
      left:0;
      top:0;
      height:100%;
      width:100%;
      background:black;
      opacity:0;
}
* html div#glayLayer{
      position:absolute;
}
#overLayer{
      display:none;
      position: fixed;
      top:50%;
      left:50%;
      margin-top:-244px;
      margin-left:-325px;
}
* html #overLayer{
      position: absolute;
}
</style>       
<script type="text/javascript">
      $(document).ready(function(e) {
            
            $("<div id='glayLayer'></div><div id='overLayer'></div>").appendTo($("body"))
            // body 마지막에 배경을 가려주는 glayLayer 와 이미지를 보여주는 overLayer 를 생성  ( 배경색이나 각속성은 CSS스타일에서 미리적용 )
            // 미리코드에 넣어두는것보다는 스크립트로 생성 ( 웹접근성 준수 )
            
            $("a.modal").bind("click", onClick); // 섬네일이미지 ( 클래스이름 .modal) 를 클릭하면 onClick 함수실행
            $("#overLayer").bind("click", onRemove);
            // 큰이미지를 보여주는 overLayer 를 다시클릭하면 사라지게 해주는 onRemove 함수실행             
            
    });     
      
      function onClick(){
            $("#glayLayer").show(); // glayLayer를 보여지게해서 배경을 흐리게한다.
            $("#glayLayer").animate({opacity:0.9},300,"easeOutCubic");
            $("#overLayer").show(); // 큰이미지를 보여주는 overLayer 도 보여준다.
            $("#overLayer").html("<img src="+$(this).attr("href")+">")
            // 보여준 overLayer에 클릭한 a테그의 경로를 얻어와서 해당되는 큰이미지를 넣어준다.     
            return false;      // a링크가 적용안되도록
      }
      function onRemove(){
            $("#overLayer").hide(); // 기존 overLayer 를 사라지게 해준다.
            $("#glayLayer").animate({opacity:0},300,"easeOutCubic", function(){
                  $("#glayLayer").hide(); // 기존 glayLayer의 투명도를 0으로 에니메이션 해주고 끝나면 사라지게 한다.
                  // 주의) 사라지게 하지않으면 다시 섬네일이미지가 클릭적용이 안된다 .( glayLayer 가 가려서 )
            })
            
      }
      
      
      
      
</script>
      </head>
      <body>            
            <ul>
                  <li><a href="images/photo1.jpg" class="modal"><img src="images/photo1_thum.jpg" alt=""  /></a></li>
                  <li><a href="images/photo2.jpg" class="modal"><img src="images/photo2_thum.jpg" alt="" /></a></li>
                  <li><a href="images/photo3.jpg" class="modal"><img src="images/photo3_thum.jpg" alt="" /></a></li>
                  <li><a href="images/photo4.jpg" class="modal"><img src="images/photo4_thum.jpg" alt="" /></a></li>
                  <li><a href="images/photo5.jpg" class="modal"><img src="images/photo5_thum.jpg" alt="" /></a></li>
                  <li><a href="images/photo6.jpg" class="modal"><img src="images/photo6_thum.jpg" alt="" /></a></li>
                  <li><a href="images/photo7.jpg" class="modal"><img src="images/photo7_thum.jpg" alt="" /></a></li>
                  <li><a href="images/photo8.jpg" class="modal"><img src="images/photo8_thum.jpg" alt="" /></a></li>
            </ul>
            <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
      </body>
</html>







toolTip 설명화면-function(e), setTimeout, clearTimeout

핵심 point
마우스를 특정 링크 위에 갖다되면, tooltip(설명화면)이 마우스 옆에 나타난다.
시간이 지나면 자동으로 사라진다.

핵심 기술
function(e){
    e.pageX  //  이렇게 쓰이며, 이벤트가 발생한 x 좌표를 나타냄
    e.pageY  //  이렇게 쓰이며, 이벤트가 발생한 y 좌표를 나타냄
}

setTimeout  :  몇초동안 이벤트가 지속됨

clearTimeout  :  Timeout setting한것을 제거해줌


최초화면




마우스 올린 화면





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
      <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <title>tooltip</title>
            <script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
            <script type="text/javascript">
                  
                  var $sample;
                  var $tooltip;
                  var timer;
                  
                  $(document).ready(function(e) {
                        
                        $sample=$("#sample");
                        $tooltip=$("div.tooltip");
                        $tooltip.css({opacity:0, display:"none"})// 툴팁박스의 초기값을 안보이게 설정           
                        
                        $sample.bind("mouseenter",onOver);
                        $sample.bind("mousemove",onMove);
                        $sample.bind("mouseleave",onOut);                                 
              
            });
            
                  function onOver(e){
                        //alert(e.pageX) // 마우스의X좌표를 출력해본다.
                        $tooltip.show(); // 툴팁을 보여주게
                        $tooltip.css({left:e.pageX+10, top:e.pageY+10}); // 툴팁의좌표를 마우스의 좌표의 10간격을 두고 지정       
                        // 중요) e.pageX : 페이지에서(body)부터의 마우스 x좌표
                        // 주의) 함수에서 e (이벤트를 반드시 붙여야 e.pageX,  e.pageY 를 인식 )
                        $tooltip.stop();
                        $tooltip.animate({opacity:0.8},500,"easeOutCubic"); // 툴팁의 투명도를 0.8 로 에니메이션
                        timer=setTimeout(onOut,3000); // 중요) setTimerout() 함수 : 일정한시간후에 함수를 실행   
                  }
                  function onMove(e){
                        $tooltip.css({left:e.pageX+10, top:e.pageY+10});      
                        // 마우스를 움직일때도 툴팁의좌표를 마우스의 좌표의 10간격을 두고 따라다니게 지정  
                  }
                  function onOut(){
                        clearTimeout(timer); // 진행되고있는 setTimeout을 멈춘다.
                        $tooltip.stop();
                        $tooltip.animate({opacity:0},500,"easeOutCubic", function(){
                              $tooltip.hide();                          
                        });
                        // 마우스가 아웃되면 툴팁의 투명도를 0 으로에니메니션 주고 사라지게함
                  }
                  
                  
                  
            </script>
            <style type="text/css">
body{
      background:#777;
      color:white;
}
a{
      color:#00CCFF; display:block; float:left; margin-right:5px;
}
h1{
      width:80%;
      margin:10px auto;
}
p{
      margin:10px 10%; text-align:justify;
}
div.tooltip{
      position:absolute;
      line-height:1.5;
      color:white;
      width:200px;
      background:#FF9900;
      border:2px solid white;
      padding:1em;
      font-size:small;
      
}
            </style>
      </head>
      <body>
            <h1>tooltip sample</h1>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sed quam ac risus auctor pulvinar. Nullam tellus lorem, volutpat sit amet eleifend quis, semper pellentesque nunc. Aliquam eu tortor nec nisl suscipit vehicula et eu sapien. Maecenas at pretium diam. Proin non luctus diam. Pellentesque risus nisi, scelerisque eu ultricies quis, <a href="#" id="sample">tooltip sample</a> luctus rhoncus dui. Proin pharetra aliquet justo, vel scelerisque lorem scelerisque eget. Praesent pharetra magna sit amet diam sagittis ac dictum nunc imperdiet. Pellentesque posuere vulputate fermentum. Vivamus fringilla commodo elit, in ornare libero imperdiet sed.</p>
            <p>Proin adipiscing faucibus felis eget auctor. Duis sed ante turpis. Cras sit amet euismod est. Vivamus tempus nibh sed odio pulvinar nec varius leo dignissim. Morbi nunc dui, rutrum vitae porttitor quis, semper in augue. Maecenas feugiat neque sit amet nisl euismod in imperdiet lorem iaculis. Suspendisse a convallis augue. Fusce faucibus sollicitudin dui, lobortis semper lacus elementum et. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Duis ullamcorper ipsum sit amet libero aliquet feugiat. Nulla facilisi. Cras tincidunt convallis felis, sed vulputate lorem blandit eget. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Quisque tortor leo, dapibus et vulputate in, laoreet sit amet odio. Nulla facilisi. Maecenas sit amet purus eu magna pellentesque sodales. In in velit sit amet sapien pharetra placerat non quis ante. Curabitur nisl tellus, aliquet quis facilisis non, congue eu lectus. Aenean lacinia, magna ut mattis aliquet, nisl augue posuere massa, ac bibendum nisi quam eu est.</p>
            <p>Morbi faucibus condimentum dolor sed tristique. Suspendisse vel diam at purus sagittis pretium. Nulla dapibus arcu metus. Sed vulputate adipiscing dapibus. Nullam interdum turpis vitae massa venenatis pulvinar. Nulla commodo convallis augue ullamcorper facilisis. Nullam viverra sollicitudin mauris eget euismod. Suspendisse nec orci felis, non viverra quam. Nunc blandit neque arcu. Aenean dignissim auctor tortor, non hendrerit nisi semper sit amet. Donec vel quam sed arcu dignissim tempus. Sed lacus erat, cursus dapibus porta non, suscipit in odio. Morbi consequat condimentum lorem, dignissim interdum dui condimentum ac. Integer eros diam, lobortis in molestie vitae, ullamcorper eget enim. Pellentesque vel velit odio, non tincidunt turpis. Ut suscipit convallis odio, rhoncus vehicula dolor dignissim in. Phasellus consequat, turpis ut imperdiet tempus, turpis neque bibendum risus, non tempor nisl eros a risus. Aenean mi libero, placerat sed suscipit ut, tincidunt a mi.</p>
       
        <div class="tooltip">이것은ASCII.jp<br /><strong>Web제작현장에서 사용한 jQuery<br />UI디자인 입문</strong><br />의 샘플 프로그램입니다.</div>
      </body>
</html>





드래그 팝업 dragPopup - mousedown, mouseup, mousemove


요즘은 팝업창을 div로 해서 많이 구현함.
drag해서 팝업창이 이동하고 종료버튼 누르면 사라지게 하기





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
      <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <title>dragPopup</title>
            <script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>       
            <script type="text/javascript">
                  
                  var $popup;
                  var $dragBar;
                  var downX;
                  var downY;
                  
                  $(document).ready(function(e) {
               
                        $popup=$("#floatWindow");
                        $dragBar=$("#floatWindow dt");
                        
                        $popup.css("opacity", 0);
                        $popup.hide();    
                        
                        $(".open").bind("click", onShow);
                        $(".close").bind("click", onHide);                    
                        
                        $dragBar.bind("mousedown", onDown);
                        $(document).bind("mouseup", onStop);            
                        
            });
                  
                  function onShow(){
                        
                        $popup.show();
                        $popup.animate({"opacity":1}, 300, "easeOutCubic");              
                        
                  }
                  
                  function onHide(){                        
                        
                        $popup.animate({"opacity":0}, 300, "easeOutCubic",function(){
                              
                              $(this).hide();
                              
                        });
                        
                  }
                  
                  function onDown(e){
                        
                        downX=e.pageX-$popup.position().left
                        downY=e.pageY-$popup.position().top
                        
                        //  누른다음에 이동해야되므로, 이벤트를 onDown()임의 함수 내에 걸어둚.
                        $(document).bind("mousemove", onMove);
                        
                  }
                  
                  function onMove(e){
                        
                        //  마우스가 이동한 좌표에 최초 마우스가 클릭된 지점의 값을 빼주어야지, 최초클릭된 부분의 좌표가 그대로 반영되어 이동됨.
                        $popup.css({"left":e.pageX-downX, "top":e.pageY-downY})
                                                
                  }
                  
                  function onStop(){
                        
                        $(document).unbind("mousemove", onMove);
                        
                  }
                  
            </script>
            <style type="text/css">
#floatWindow{
      
      position:absolute;
      width:500px;
      height:400px;
      top:100px;
      left:100px;
      
}
#floatWindow a.close{
      position:absolute;
      right:20px;
      top:1px;
}
#floatWindow a.close img{
      border:none;
}
#floatWindow dl{
      width:100%;
      height:100%;
      background:url("./images/floatWindow.png");
      margin:0;
}
#floatWindow dl dt{
      height:25px;
      line-height:25px;
      text-indent:1em;
      color:white;
      font-weight:bold;
      cursor:move;
}
#floatWindow dl dd{
      margin:0;
      padding:2em;
      line-height:1.5;
      text-indent:1em;
}
            </style>
      </head>
      <body>
            
            <a class="open">플로우팅 윈도우 표시</a>
            
            <div id="floatWindow">
                  <a class="close"><img src="./images/close.png" alt="닫힘" /></a>
                  <dl>
                        <dt>jQuery를 이용하여 플로우팅 윈도우 만들기</dt>
                        <dd>이번에는 jQuery를 이용하여 플로우팅 윈도우..(중략)...윈도우를 표시할 수 있습니다.</dd>
                  </dl>
            </div>
      </body>
</html>




슬라이드퀵메뉴 slideQuickMenu - scroll, resize, scrollTop

스크롤하면, 슬라이드효과로 퀵메뉴가 화면의 특정 좌표에 계속 붙어 있음









<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>slideQuickMenu</title>
<div id="quick_menu" style="position:absolute; width:75px; height:235px;">
    <img src="images/quick.gif" alt="" />
</div>
<script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
<script type="text/javascript">
      
      var $quickMenu;
      var topPosition=300;
      var leftPosition=100;
      
      $(document).ready(function(e) {
       
            $quickMenu=$("#quick_menu");
            
            $quickMenu.css({"left":$(document).innerWidth()/2+leftPosition, "top":topPosition});
            
            $(window).bind("scroll", onScroll);
            $(window).bind("resize", onResize);
            
            
    });
      
      function onScroll(){
            
            $quickMenu.stop();
            $quickMenu.animate({"top":$(document).scrollTop()+topPosition}, 1000, "easeOutCubic");
            
            
      }
      
      function onResize(){
            
            $quickMenu.css({"left":$(document).innerWidth()/2+leftPosition, "top":topPosition});
            
      }
      
      
            
 </script>
</head>
<body>
<div id="wrap" style="width:70%;">
<br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
</body>
</html>







Dot도트 모양의 슬라이드 반응형 - border-radius




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>슬라이드이미지 _버튼</title>
<script type="text/javascript" src="../../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../../libs/jquery.easing.1.3.js"></script>
<style type="text/css">
html,body{
      height:100%;
}
body,p,ul,li{
      margin:0px; padding:0px; list-style:none;
}
body{
      background:url(../images/index_back.gif);
}
div#slide_wrap{
      width:100%; height:80%;  background:#CCC; margin-top:100px; 
}
div#slide_center{
      width:80%; height:100%; margin:0px auto; position:relative; left:0px; top:0px;
      overflow:hidden;
      
}
ul#img_list{
      position:absolute; left:0px; top:0px;
}
ul#img_list li{
      float:left;
}
ul#img_list li img{
      display:block;
}
ul#dot_list{
      position:absolute; left:50%; bottom:3%;
}
ul#dot_list li{
      width:30px; height:30px; float:left; margin-right:10px; border-radius:15px; background:#FFF;
}
</style>
<script type="text/javascript">
      var $slideWrap;
      var $slideCenter;
      var $imgList;
      var $images;
      var $dotList;
      var $dot //  도트
      var imgWidth //  이미지의 너비
      var imgNum //  이미지의 총개수
      var overNum = 0 //  선택된 도트의 번호
      var myInterval;
      var intervalPlay = false //  false일때 자동넘김 멈춤  true일때 자동넘김 시작
            
      //  반응형이기때문에, $(document).ready 가 아니라
      //  $(window).load 임
      $(window).load(function(){
            
            $slideWrap = $("#slide_wrap");
            $slideCenter = $("#slide_center");
            $imgList = $("#img_list");
            $images = $("#img_list img");
            $dotList = $("#dot_list");
            $dot = $("#dot_list li");
            imgNum = $images.size();
            
            //  alert(imgNum);
            
            imgReset();
            
            //  첫번째 보여지는 이미지 클릭된 것처럼 보여지기 위해서 background-color을 빨간색으로 나타내기
            showDot(0);
            
            //  도트 슬라이드 작동원리
            //  선택된 도트의 개수만큼 이미지list의 left 좌표가 너비*개수 만큼 이동해야함
            $dot.bind("click", onOver);
            
            myInterval = setInterval(onPlay, 1000);
            
            $slideWrap.bind("mouseleave", onInterval);
            
      });
      
      //  반응형: 화면 사이즈가 변할때마다 작동함
      $(window).resize(function(){
            
            imgReset();
            
            //  리사이징 할때도, 선택된 dot에 따라 영향을 받아 left 값이 바뀌어야함
            $imgList.css("left", -imgWidth*overNum);
            
      });
      
      //  선택된 dot의 색은 빨간색으로 그이외의 dot는 흰색으로 나타내게 하기
      function showDot(newMenu){
            
            //  전 dot의 색을 흰색으로 바꾸기
            $dot.css("background-color", "white");
            //  선택된 dot만 빨간색으로 보이기
            $dot.eq(newMenu).css("background-color", "red");
            
      }
      
      //  리사이즈 할때마다 반응형처럼 보여주기 위한 초기 세팅작업들
      function imgReset(){
            
            imgWidth = $slideCenter.innerWidth();
            //  alert(imgWidth);
            
            //  모든 이미지들의 너비를 slideCenter의 innerWidth로 통일
            $images.css("width", imgWidth);
            
            //  슬라이드랩의 높이를 이미지들의 높이와 같게 하기
            $slideWrap.css("height", $images.innerHeight());
            
            //  dot tip!
            //  dot모양을 표현해주기 위해서, 이미지의 40분의 1로 나타내는 걸로 상정하기
            //  border-radius는 dot의 절반 크기로 주어야만 동그라미 모양이 됨
            $dot.css({"width": (imgWidth/40), "height": (imgWidth/40), "border-radius": (imgWidth/40)/2});
            
            //  imgList의 크기를 이미지 너비 * 이미지의 개수 만큼 넓혀주기
            $imgList.css("width", imgWidth * imgNum);
      }
      
      //  도트가 선택되면 작동할 이벤트 정의함수
      function onOver(){
                  
            overNum = $dot.index($(this));
            //alert(overNum);
            
            //  슬라이드가 자연스럽게 넘어가는 이벤트
            onSlide(overNum);
            
            //  interval 작동멈추게 하기
            clearInterval(myInterval);
            intervalPlay = true;
      };
      
      //  슬라이드되는 효과이벤트를 정의하는 함수
      function onSlide(newNum){
            
            $imgList.animate({"left": - imgWidth*newNum}, 500, "easeOutExpo");
            
            //  도트도 선택된게 빨간색으로 바뀌게 해야함
            showDot(newNum);
      }
      
      function onPlay(){
            
            overNum = overNum + 1;
            
            if(overNum >= imgNum){
                  
                  overNum = 0;
            }
            
            onSlide(overNum);
      }
      function onInterval(){
            
            if(intervalPlay){
                  myInterval = setInterval(onPlay, 1000);
                  intervalPlay = false;
            }
            
      }
</script>
</head>
<body>
      <div id="slide_wrap">
  
        <div id="slide_center">
            
                  <ul id="img_list">
                  <li><img src="../images/img1.gif" alt="" /></li>
                    <li><img src="../images/img2.gif" alt="" /></li>
                    <li><img src="../images/img3.gif" alt="" /></li>
                    <li><img src="../images/img4.gif" alt="" /></li>       
                </ul>      
               
                  <ul id="dot_list">
                  <li></li>
                    <li></li>
                    <li></li>
                    <li></li>          
                </ul>           
           
        </div>
       
        <span id="prev_btn">이전보기</span>
        <span id="next_btn">다음보기</span>
         
    </div>

</body>
</html>







TabMenu 탭메뉴-addClass, removeClass

주요 핵심 Point
특정 class에 css를 미리 작성해두고, 스크립트로 클래스명을 추가, 제거하며 화면상에 바뀌는 효과를 가진다.


tab 이미지




tab_selected 이미지





탭메뉴 실행화면




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
      <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <meta http-equiv="Content-Style-Type" content="text/css" />
            <meta http-equiv="Content-Script-Type" content="text/javascript" />
            <title>tabMenu</title>
            <script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
            <script type="text/javascript">
                  
                  var $tab;
            
                  $(document).ready(function(e) {
                        
                $("ul.panel li").hide(); // 모든보여질내용을 안보이게 초기값적용
                        $("#tab1").show(); // 처음보여줄내용만 보이게 적용
                        
                        $tab=$("ul.tab li a");                    
                        $tab.bind("click",onClick);               
            });
                  
                  function onClick(){                       
                        $tab.removeClass("selected");
                        // 기존에활성된탭메뉴를 비활성화배경이미지처리와 텍스트처리 시킴 ( 클래스에 속성을 미리지정하고 클래스를 변경하여 스타일 지정 )
                        $(this).addClass("selected"); // 클릭한 탭메뉴만 활성화배경이미지 처리와 텍스트 칼라변경                       
                        // 중요) 클래스의 background-position 속성을 미리다르게 지정해놓고 클릭할때 클래스를 변경하면
                        //배경이미지 뿐만아니라 배경이미지에 타이틀도 포함시켜 바꿀수있다. (현제는 타이틀을 텍스트로 처리 )                
                        
                        $("ul.panel li").hide(); // 기존활성화된내용은 비활화 시킴
                        $($(this).attr("href")).show(); // 클릭한 탭메뉴의링크경로를 얻어내서 해당되는 id의 내용만 활성화 시킴
                        return false;     // a링크명령이 적용되지못하게 한다.
                  }
                        
            </script>
            <style type="text/css">
*{
      margin:0;
      padding:0;
}
#container{
      width:500px;
      margin:50px auto;
}
ul.tab{
      padding:0;
}
ul.tab li{
      list-style-type:none;
      width:100px;
      height:40px;
      float:left;
}
ul.tab li a{
      outline:none;
      background:url("./images/tab.jpg");
      display:block;
      color:blue;
      line-height:40px;
      text-align:center;
      height:40px;
}
ul.tab li a:link{
      font:normal 12px Arial, Helvetica, sans-serif; color:#000000; text-decoration:none;
      line-height:40px;
}
ul.tab li a.selected{
      background:url("./images/tab_selected.jpg");
      text-decoration:none;
      color:#069;
      cursor:default;
}
ul.panel{
      clear:both;
      border:1px solid #9FB7D4;
      border-top:none;
      padding:0;
}
ul.panel li{
      list-style-type:none;
      padding:10px;
      text-indent:1em;
      color:#333;
      background:#FFFFFF;
}
            </style>
      </head>
      <body>
            <div id="container">
                  <ul class="tab">
                        <li><a href="#tab1" class="selected">JavaScript</a></li>
                        <li><a href="#tab2">CSS</a></li>
                        <li><a href="#tab3">HTML</a></li>
                        <li><a href="#tab4">jQuery</a></li>
                        <li><a href="#tab5">XHTML</a></li>
                  </ul>
                  <ul class="panel">
                        <li id="tab1">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse congue elit eu mauris sollicitudin dictum. Phasellus nec felis ut arcu placerat tincidunt. Vestibulum luctus mauris ac ante molestie eleifend. Quisque dapibus nulla ac purus volutpat posuere a quis nisl. Nam condimentum purus vitae nibh feugiat imperdiet. Cras purus mi, egestas vitae imperdiet volutpat, suscipit nec odio. Maecenas elementum aliquam metus nec ultrices. Suspendisse potenti. Praesent lobortis gravida massa in volutpat. Nunc id mauris id orci congue malesuada. Aliquam vel mauris risus, sit amet laoreet sapien. Maecenas varius gravida purus vel pharetra. Sed quis leo id mi laoreet accumsan. Vestibulum ac mauris purus, nec rutrum sem. Sed euismod magna a lacus consectetur in mattis quam suscipit. Phasellus nec enim libero. Donec sit amet justo diam. In hac habitasse platea dictumst. Sed nibh libero, iaculis eget aliquet eu, rhoncus nec ligula.
                        </li>
                        <li id="tab2">
Nam cursus molestie erat, a sodales erat sollicitudin ut. Maecenas nec urna mi, eu congue turpis. Duis vitae volutpat lorem. Ut vulputate tempor elit, vitae iaculis elit sollicitudin at. Ut gravida fermentum tempor. Mauris metus ante, volutpat et porta a, malesuada vel purus. In lobortis ullamcorper lorem eu malesuada. Nullam sollicitudin, urna eu euismod suscipit, eros sapien adipiscing arcu, sit amet ultricies lacus elit sed urna. Nam scelerisque, nulla eu mollis elementum, ipsum tortor ullamcorper felis, eget laoreet diam turpis dignissim metus. In eget lectus sit amet mi pretium pellentesque varius vitae augue. Integer mattis, elit nec adipiscing rhoncus, elit tellus congue sapien, et auctor mi nisi in purus. Curabitur commodo, neque sed ornare porta, purus magna rhoncus eros, quis consectetur ipsum erat ac mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce sed turpis tortor, quis euismod enim. Integer faucibus venenatis egestas. Etiam eu metus et sem bibendum fermentum. Sed dui ante, sollicitudin at tincidunt at, pretium sit amet diam. Nunc porttitor tristique est sed pulvinar. Fusce eu ligula vitae orci venenatis sagittis sed quis ipsum.
                        </li>
                        <li id="tab3">
Pellentesque in metus leo. Praesent porta, dolor nec mattis ullamcorper, velit purus mollis enim, nec tincidunt magna massa ornare elit. In ipsum enim, pellentesque vitae gravida ultrices, aliquet nec ante. Mauris sed nunc ut ligula dictum convallis vel et nunc. Aenean eget enim vitae nulla lacinia consequat. Quisque blandit, ante vel sodales sollicitudin, neque ante elementum leo, ut consequat dui risus ut purus. Vestibulum viverra lacus at felis dignissim bibendum. Maecenas interdum nisl eu metus porta luctus. Suspendisse nulla neque, ultricies nec facilisis nec, mollis id sapien. Donec nec quam et felis pulvinar fringilla a non orci. Maecenas tincidunt magna a sem faucibus eu interdum magna aliquam. Suspendisse a diam lorem, nec malesuada sapien. Nam a scelerisque velit. Integer commodo malesuada odio, sit amet rutrum ante viverra ut. In egestas, arcu id pretium tempus, ligula nibh interdum enim, non bibendum velit felis sed augue. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent augue eros, posuere pharetra pharetra eu, feugiat eu velit.
                        </li>
                        <li id="tab4">
Vestibulum a quam scelerisque odio ultricies mollis eget a leo. Morbi dictum, velit lobortis hendrerit tincidunt, lacus nisl rhoncus felis, commodo sollicitudin magna augue non est. Nunc in felis quis purus dignissim blandit vel ut erat. In hac habitasse platea dictumst. Nullam euismod auctor rhoncus. Proin et sem ac neque placerat vulputate. Nullam consequat purus eget libero posuere pulvinar. Aenean luctus luctus leo nec vehicula. Praesent eleifend nibh sed neque vestibulum hendrerit. Nulla suscipit vehicula sem, quis congue ligula gravida vel. Aliquam risus urna, pretium eget porttitor hendrerit, gravida at libero. Curabitur nec luctus risus. Etiam ullamcorper fringilla nisl hendrerit convallis. Duis in nibh tellus. Donec porta nibh id purus mollis sodales. Nam eget libero vel metus congue ultricies ut vitae nibh. Sed ac justo ac eros luctus ullamcorper ut tincidunt nibh. Fusce dapibus bibendum urna, id tempor turpis sodales sed. Nam dui purus, posuere vel placerat eu, posuere non magna.
                        </li>
                        <li id="tab5">
Vestibulum consequat consequat aliquet. Aenean ut nunc dolor, vel dictum mauris. Proin neque eros, tincidunt at faucibus a, dapibus sit amet tellus. Etiam rutrum pharetra risus porta ullamcorper. Nunc convallis orci at massa suscipit porta. Sed interdum suscipit dui, eu sodales odio fermentum vitae. Nunc vitae dui metus, a laoreet ante. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed eu mauris mi, non blandit tortor. Ut fringilla cursus justo id porta. Sed in nibh nulla. Aenean consectetur arcu vel eros facilisis ac luctus lectus placerat. Fusce risus dui, adipiscing ut tempus non, malesuada quis velit.
                        </li>
                  </ul>
            </div>
      </body>
</html>





서브네비게이션 메뉴 focus 이벤트

메인메뉴 버튼 이미지들




실제 화면




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<style type="text/css">
body,p,ul,li{
     margin:0px; padding:0px; list-style:none;
}
body{
     background:url(img/index_back.gif);
}
div#header_wrap{
     width:100%; height:122px; background:url(img/header_bg.gif) repeat-x;
}
div#header_center{
     width:980px; height:122px; margin:0px auto; position:relative; left:0px; top:0px;
     /* 반응형일경우는 해상도가 980px 보다 작을때는 메뉴구조를 새로 바꾸는 것이 좋다 ( 예) 네비게이션 전체를 사라지게 하고 메뉴버튼으로 보이게 */
}
     
span#logo{
     position:absolute; left:0px; top:20px;
}
ul#mainMenu_list>li{
     float:left; margin-right:50px; position:relative; left:0px; top:0px;
}
ul#mainMenu_list{
     position:absolute; left:250px; top:30px;
}
div.mainMenu{
     height:20px; overflow:hidden; position:relative; left:0px; top:0px;
}
div.mainMenu>a{
     position:relative; left:0px; top:0px; /* a테그를 움직이게 하므로 반드시 position 값이 존재해야 한다. */
}
div.subMenu{
     width:300px; position:absolute; left:0px; top:65px;
}
ul.subMenu_list>li{
     float:left; margin-right:10px;
}
</style>
<script type="text/javascript">
     
     var $mainMenu;
     var $subMenu;
     var overNum;
     
     //  실제로 sub메뉴가 다양할 경우, 바로 밑에 생기면, 모양이 이상하므로,
     //  left 값을 여러개 넣어서 바꿔줌
     var subPosition = [-100,-80,0,-20,100];  
     
     $(document).ready(function(){
          
          $mainMenu = $(".mainMenu>a");
          $subMenu = $(".subMenu");
          
          //  처음에는 안보이게 해주기
          $subMenu.css("opacity", 0);
          $subMenu.hide();
          
          $mainMenu.bind("mouseenter", onOver);
          $mainMenu.bind("focus", onOver);
   
     //  맨 마지막 sub메뉴에서 탭키 눌렀을때, 화면 사라지게 이벤트 걸기
         $(".subMenu_list").last().children().last().bind("focusout", onOut);
     
     //  메뉴 밖으로 벗어나면 메뉴 활성 사라지게 이벤트 걸기
     $("#header_center").bind("mouseleave", onOut);
    
     });
     function onOver(){
   
     //  mainMenu들 중에서 해당 over된 mainMenu의 번호를 알아내기
         overNum=$mainMenu.index($(this));
         //alert(overNum)
        
         //  최초 세팅으로 over되기 전으로 해놓기    
         mainOut();
         subOut();
        
         //  over이벤트 걸어주기
         mainOver($(this));
         subOver($(this));
   
     }
 
     function onOut(){
   
          mainOut();
          subOut();
   
     }
     
     function mainOver(newMenu){
          
          newMenu.stop();
          //  1장의 메인버튼 이미지 사진이 hover느낌전후과 위아래로 붙어있으므로, 이것을 top을 통해서 전환 시켜줌
          newMenu.animate({"top":-25}, 300, "easeOutCubic");
          
     }
     
     function mainOut(){
          
          $mainMenu.stop();
          //  1장의 메인버튼 이미지 사진이 hover느낌전후과 위아래로 붙어있으므로, 이것을 top을 통해서 전환 시켜줌
          $mainMenu.animate({"top":0}, 300, "easeOutCubic");
     }
     
     function subOver(newMenu){
          
          newMenu.parent().next().show();
          newMenu.parent().next().stop();
          newMenu.parent().next().animate({"left":subPosition[overNum], "opacity":1}, 300, "easeOutCubic");
     }
     
     function subOut(){
          
          $subMenu.stop();
          $subMenu.animate({"left":0, "opacity":0}, 300, "easeOutCubic", function(){
              $(this).hide() //  opacity가 0인 것은 실제로 존재는 하기때문에 사라지게 하기
          })
     }
     
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>서브메뉴네비게이션_웹접근성</title>
</head>
<body>
     <div id="header_wrap">
     <div id="header_center">
          <span id="logo"><a href="#"><img src="img/logo.png" alt="" /></a></span>
          <ul id="mainMenu_list">
              <li>
                   <div class="mainMenu">
                        <a href="#"><img src="img/menu0.png" alt="" /> </a>                  
                  </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                             <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
                <li>
                   <div class="mainMenu">
                        <a href="#"><img src="img/menu1.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                             <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
                <li>
                   <div class="mainMenu">
                        <a href="#"><img src="img/menu2.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                             <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
                <li>
                   <div class="mainMenu">
                        <a href="#"><img src="img/menu3.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                             <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
                <li>
                   <div class="mainMenu">
                        <a href="#"><img src="img/menu4.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                             <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#" id="last_subMenu"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
           
           
           
            </ul>       
       
        </div>   
    </div>
</body>
</html>









반응형 슬라이드-resize, setInterval

슬라이드 기능이 화면을 줄였을때 반응형으로 작동하게 만들기








<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>슬라이드이미지 _버튼</title>
<script type="text/javascript" src="../../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../../libs/jquery.easing.1.3.js"></script>
<style type="text/css">
html,body{
     height:100%;
}
body,p,ul,li{
     margin:0px; padding:0px; list-style:none;
}
body{
     background:url(../images/index_back.gif);
}
div#slide_wrap{
     width:100%; height:80%;  background:#CCC; margin-top:100px;
}
div#slide_center{
     width:80%;  margin:0px auto; position:relative; left:0px; top:0px;
}
ul#img_list{
     position:absolute; left:0px; top:0px; width:100%;
}
ul#img_list li{
     float:left;
}
ul#img_list li img{
     display:block; width:100%;
}
span#prev_btn{
     position:absolute; left:-5px; top:40%;
}
span#next_btn{
     position:absolute; right:-5px; top:40%;
}
</style>
<script type="text/javascript">
  var $slideWrap;
  var $slideCenter;
  var $imgList;
  var $imgs //  슬라이드 이미지들
  var $btnImg  //  버튼 이미지
  var imgNum //  슬라이드 이미지의 총 개수
  var imgWidth //  해당 슬라이드안의 1개 이미지의 너비
  var imgHeight //  해당 슬라이드안의 1개 이미지의 높이
  var currentPosition //  현재 움직여줄 ul의 좌표
  var myInterval //  interval 담을 변수
 
  //  반응형 jquery는 document ready가 아니라, window ready이다.
  $(window).load(function(){
          
          $slideWrap = $("#slide_wrap");
          $slideCenter = $("#slide_center");
          $imgList = $("#img_list");
          $images = $("#img_list img");
          
          //  #slide_center 아래 span 아래 img들
          $btnImg = $("#slide_center span img");
          
          resizeReset();
                    
          //  최초 세팅: 맨마지막 사진을 첫번째 사진 앞에다가 붙여주기
          $imgList.children().last().prependTo($imgList);
          
          //  자동적으로 슬라이드가 next버튼 누른 것처럼 변하게 하는 interval 만들기
          myInterval = setInterval(onNext, 2000);
          //  사진에서 마우스가 떠나면, 슬라이드 넘기는 이벤트 멈추기
          $slideWrap.bind("mouseleave", onPlay);
          //  사진에서 마우스가 올라가면, 슬라이드 넘기는 이벤트 시작 
          $slideWrap.bind("mouseenter", onStop);
          
          $("#prev_btn").bind("click", onPrev);
          $("#next_btn").bind("click", onNext);
  });
 
  function onStop(){
          
          clearInterval(myInterval);
          //alert("myInterval1: " + myInterval);
  }
 
  function onPlay(){
     
          myInterval = setInterval(onNext, 2000);         
  }
 
  function onNext(){
     
          currentPosition = $imgList.position().left;
          //  left를 이미지 사진만큼 이동해주면, 사진이 바뀌는 효과를 갖게됨
          $("#img_list:not(:animated)").animate({"left":currentPosition-imgWidth}, 300, "easeOutCubic", function(){
              
              //  맨첫번째 이미지가 이미지리스트의 맨 마지막에 이동하기
               $imgList.children().first().appendTo($imgList);
              //  사진이 이동한만큼 위치도 당겨주어야함
              $imgList.css("left", -imgWidth);
          });
  }
 
  function onPrev(){
     
          currentPosition = $imgList.position().left;
          //  left를 이미지 사진만큼 이동해주면, 사진이 바뀌는 효과를 갖게됨
          
          $("#img_list:not(:animated)").animate({"left":currentPosition-imgWidth}, 300, "easeOutCubic", function(){
              
              //  맨 마지막 이미지가 이미지리스트의 맨 처음에 이동하기
               $imgList.children().last().prependTo($imgList);
              //  사진이 이동한만큼 위치도 당겨주어야함
              $imgList.css("left", +imgWidth);
          });
  }
 
  //  window를 resize할때(화면의 크기가 재조정 될때)
  $(window).resize(function(){
          
          resizeReset();
          
  });
 
  //  반복되는 내용을 함수화 해서, 이렇게 정리해서 사용
  function resizeReset(){
     
          imgWidth = $slideCenter.innerWidth();
          //alert(imgWidth);
                    
          //  슬라이드 돌릴 이미지들의 크기를 전부 imgWidth 크기만큼 바꿔야함
          $images.css("width", imgWidth);
          
          //  반응형이기때문에 이미지 높이도 맞추어줘야함
          imgHeight=$images.height();
          
          //  슬아이드 화면 전체의 높이 세팅
          $slideCenter.css("height",imgHeight);
          
          //  슬아이드를 감싸는 전체의 높이 세팅
     $slideWrap.css("height", imgHeight);
          
          //  슬라이드 화면을 이미지의 높이만큼 바꿔야함
          $slideWrap.css("height", $images.innerHeight());
          
          //  슬라이드 버튼도 이미지를 기준으로 너비의 20분의 1로 만듦
          $btnImg.css("width", imgWidth/20);
          
          //  이미지 개수
          imgNum = $images.size();
          //alert(imgNum);
          
          //  이미지 리스트의 너비가 전체 이미지 너비 * 개수
          $imgList.css("width", imgWidth * imgNum);
                    
          //  최초 세팅: 맨마지막 사진을 첫번째 사진 앞에다가 붙여주기
          //$imgList.children().last().prependTo($imgList);
          //  최초 세팅: 첫번째 사진이 보여야하므로 위치를 사진의 너비만큼 왼쪽으로 이동
          $imgList.css("left", - imgWidth);
     
  }
   
   
</script>
</head>
<body>
     <div id="slide_wrap">
  
       <div id="slide_center">
          
          <ul id="img_list">
              <li><img src="../images/img1.gif" alt="" /></li>
                <li><img src="../images/img2.gif" alt="" /></li>
                <li><img src="../images/img3.gif" alt="" /></li>
                <li><img src="../images/img4.gif" alt="" /></li>       
          </ul>      
               
            <span id="prev_btn"><img src="../images/leftbtn.png" alt="" /></span>
            <span id="next_btn"><img src="../images/rightbtn.png" alt="" /></span>
           
           
        </div>
       
       
         
    </div>
</body>
</html>




3dept의 메뉴네비게이션 이벤트 걸기
mouseenter, mouseleave

tip
li부모태그에 mouseover했다가, 자식태그로 마우스가 이동하면, mouseout으로 인식해버림.
이것을 보완할 이벤트
mouseenter
mouseleave
자식태그로 이동해도 부모태그에서 mouseout한것으로 인식안함




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>slideNavi</title>
<script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
<style type="text/css">
*{
       margin:0;
       padding:0;
       list-style-type:none;
}
#container{
       margin:100px auto;
       width:537px;
}
ul.menu li{
       float:left;
       width:179px;
       height:48px;
       background:url("images/btn.png");
       position:relative;
}
* html ul.menu li{
       display:inline;
       zoom:1;
}
*+html ul.menu li{
       display:inline;
       zoom:1;
}
ul.menu li a{
       display:block;
       width:100%;
       height:100%;
       line-height:48px;
       text-indent:30px;
       font-weight:bold;
       color:#CFDFB5;
       text-decoration:none;
       position:relative;
}
ul.menu li a:hover{
       background:url("images/btn_over.png");
}
ul.sub{
       display:none;
}
* html ul.sub{
       zoom:1;
       position:relative;
}
*+html ul.sub{
       zoom:1;
       position:relative;
}
ul.sub li{
       float:none;
}
ul.sub li ul.sub{
       position:absolute;
       /* 두번째 서브메뉴는 부모의 위치를 기준으로 잡아야 함 */
       left:179px;
       top:0;
}
ul.menu{
       zoom:1;
}
ul.menu:after {
       height:0;
       visibility:hidden;
       content:".";
       display:block;
       clear:both;
}
</style>
<script type="text/javascript">
       var $mainMenu //  메뉴네비게이션들 전부 담을 변수
       
       $(document).ready(function(){
              
              //  메뉴네비게이션들 전부 담을 변수
              $mainMenu = $(".menu li");
              
              //  hovertl slidedown 이벤트 걸기
              //  tip
              /* 
               *
               * li부모태그에 mouseover했다가, 자식태그로 마우스가 이동하면, mouseout으로 인식해버림.
               * 이것을 보완할 이벤트: mouseenter, mouseleave
               * 자식태그로 이동해도 부모태그에서 mouseout한것으로 인식안함
               */
              
              $mainMenu.bind("mouseenter", onOver);
              
              $mainMenu.bind("mouseleave", onOut);
              
       });
       
       function onOver(){
              
              //  추가 tip :not(:animated)는 이벤트의 중복을 막기위해서
              $(this).children(".sub:not(:animated)").slideDown(300, "easeOutExpo");
       }
       
       function onOut(){
              
              //  추가 tip :not(:animated)는 이벤트의 중복을 막기위해서
              $(this).children(".sub:not(:animated)").slideUp(300, "easeOutExpo");
       }
</script>            
</style>
       </head>
       <body>
              <div id="container">
              <ul class="menu">
                     <li><a href="#">메뉴A</a>
                           <ul class="sub">
                                  <li><a href="#">서브메뉴A</a></li>
                                  <li><a href="#">서브메뉴A</a></li>
                                  <li><a href="#">서브메뉴A</a><!--
                                         --><ul class="sub">
                                                <li><a href="#">서브메뉴A2</a></li>
                                                <li><a href="#">서브메뉴A2</a></li>
                                                <li><a href="#">서브메뉴A2</a></li>
                                         </ul><!--
                                  --></li>
                           </ul>
                     </li>
                     <li><a href="#">메뉴B</a>
                           <ul class="sub">
                                  <li><a href="#">서브메뉴B</a></li>
                                  <li><a href="#">서브메뉴B</a>
                                         <ul class="sub">
                                                <li><a href="#">서브메뉴B2</a></li>
                                                <li><a href="#">서브메뉴B2</a></li>
                                                <li><a href="#">서브메뉴B2</a>
                                                       <ul class="sub">
                                                              <li><a href="#">서브메뉴B3</a></li>
                                                              <li><a href="#">서브메뉴B3</a></li>
                                                              <li><a href="#">서브메뉴B3</a></li>
                                                       </ul>
                                                </li>
                                         </ul>
                                  </li>
                                  <li><a href="#">서브메뉴B</a></li>
                           </ul>
                     </li>
                     <li><a href="#">메뉴C</a>
                           <ul class="sub">
                                  <li><a href="#">서브메뉴B</a>
                                         <ul class="sub">
                                                <li><a href="#">서브메뉴C2</a></li>
                                                <li><a href="#">서브메뉴C2</a></li>
                                                <li><a href="#">서브메뉴C2</a></li>
                                         </ul>
                                  </li>
                                  <li><a href="#">서브메뉴B</a></li>
                                  <li><a href="#">서브메뉴B</a></li>
                           </ul>
                     </li>
              </ul>
              </div>
              
       </body>
</html>





위의 mouseenter, mouseleave의 예제 샘플



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>slideNavi</title>
<script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
<style type="text/css">
div#main{
       width: 200px;
       height:200px;
       background:red;
       position:absolute;
       left:200px;
       top:200px;
}
div#sub{
       width:100px;
       height:100px;
       margin: 50px auto;
       background:blue;
}
</style>
<script type="text/javascript">
       $(document).ready(function(){
              
              //  최초 mouse가 over, out되고, 자식태그로 이동시 mouseover/mouseout은 over/out으로 보지만,
              //  mouseenter/mouseleave는 over/out으로 보지 않음.
              $("#main").bind("mouseout", onOut);
       });
       
       function onOut(){
              
              alert('마우스가 아웃되었습니다.');
       }
</script>            
</style>
       </head>
       <body>
              <div id="main">
                     <div id="sub">
                           
                     </div>
              </div>
              
       </body>
</html>





메뉴네비게이션 이미지 이용 애니메이션 걸기
아래의 버튼위에 마우스 올리고 내릴때마다 1장 이미지 png를
overflow:hidden
position: relative
인 상태에서 
top의 위치를 바꿔서, 색상이 변화가 일어나게 해줌

tip
빠른 이벤트변화이므로, 중복을 막기위한 animation 중지는 stop을 이용



아래 png 파일들






<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>animationNavi</title>
<script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
<style type="text/css">
              *{
                     margin:0;
                     padding:0;
              }
              body{
                     background:url(images/index_back.gif);
              }
              ul.menu{                   
                     background:url(images/bg.jpg) repeat-x;
                     width:700px;
                     height:50px;
                     position:absolute;
                     left:50px;
                     top:50px;
                     overflow:hidden;
                     padding-left:80px;
                     border:solid 1px #999;
                     border-radius:10px;
                     box-shadow:2px 2px 2px #333;
              }
              
              ul.menu li{
                     margin-top:10px;                  
                     overflow:hidden;
                     width:120px;
                     height:30px;  
                     float:left;
                     cursor:pointer;
              }
              
              ul.menu li div{            
                     position:relative;
              }
                     
</style>
       
<script type="text/javascript">
       
       var $mainMenu;
       
       $(document).ready(function(){
              
              $mainMenu = $(".menu").children();
              
              $mainMenu.bind("mouseenter", onOver);
              $mainMenu.bind("mouseleave", onOut);
       });
       
       function onOver(){
              //  tip: 이런건 반응이 빠르기때문에, stop으로 이벤트 컨트롤
              $(this).children().stop();
              
              //  해당 mouseover된 li태그의 자식인 div의 위치를 바꿔주기: top
              $(this).children().animate({"top":-30}, 200, "easeOutExpo");
       }
       
       function onOut(){
              //  tip: 이런건 반응이 빠르기때문에, stop으로 이벤트 컨트롤
              $(this).children().stop();
              
              //  해당 mouseover된 li태그의 자식인 div의 위치를 바꿔주기: top
              $(this).children().animate({"top":0}, 200, "easeOutExpo");
       }
       
       
   
       
              
</script>
</head>
       <body>
              <ul class="menu">
                     <li>
                           <div><img src="images/menu_1.png"></div>
                     </li>
                     <li>
                           <div><img src="images/menu_2.png"></div>
                     </li>
                     <li>
                           <div><img src="images/menu_3.png"></div>
                     </li>
                     <li>
                           <div><img src="images/menu_4.png"></div>
                     </li>
                     <li>
                           <div><img src="images/menu_5.png"></div>
                     </li>
              </ul>
       </body>
</html>






아코디언 메뉴-배열





작동원리
각메뉴에 마우스를 올리면 해당메뉴의 높이를 늘려서 안에있는 이미지를  보여주면서
그안에있는 이미지는 동시 올려주어서 타이틀을 안보이게 해준다.

해당 menu_item > menu_item_content > image 2개가 있음 
over하게되면, 메뉴의 높이가 커짐

.accordion_menu .menu_item{
       position:relative;
       height:30px;  
       overflow:hidden;
       cursor:pointer;
}



배열
어떤것은 서브메뉴가 많을 수도 있고, 적을 수도 있고, 없을수도 있음.
즉, 규칙, 사이즈들을 찾기 어려울때 어떻게 해야할까?
이럴때는 배열을 이용한다.

이때, 중요한 함수
index(): 순번구하는 함수


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>accordionMenu</title>
<script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
<style>
@charset "utf-8";
/* CSS Document */
body{
       background:url(../images/index_back.gif);
}
.accordion_menu{
       position:absolute;
       left:100px;
       top:50px;     
       width:300px;
       padding:20px 0;
       
       border-radius:10px;
       box-shadow:2px 2px 2px #333;      
       background-color:#eeeeee;
}
.accordion_menu .menu_item{
       position:relative;
       height:30px;  
       overflow:hidden;
       cursor:pointer;
}
.accordion_menu .menu_item  .menu_item_content{
       position:absolute;
}
.accordion_menu .menu_item  .menu_item_content img{
       display:block;
}
       
</style>
<script type="text/javascript">
       /*
        * 작동원리
              각메뉴에 마우스를 올리면 해당메뉴의 높이를 늘려서 안에있는 이미지를 보여주면서
              그안에있는 이미지는 동시 올려주어서 타이틀을 안보이게 해준다.    
       */
       
       /*
        * 다행이도 레퍼런스로 준비된 menu_1_over.png ~ menu_4_over.png의 사진 높이는 모두 113px이지만,
        * 만약에 이런 이미지 사이즈들이 다를 경우에는 어떻게 해야할까?
        * 어떤것은 서브메뉴가 많을 수도 있고, 적을 수도 있고, 없을수도 있음.
        * 즉, 규칙, 사이즈들을 찾기 어려울때 어떻게 해야할까?
        * 이럴때는 배열을 이용한다.
        */
       
       var $mainMenu;
       //var openHeight = 120;
       var closeHeight = 30;
       
       var openArray=[120, 240, 30, 200, 400] //  순서에 맞게 높이값을 넣은 배열
       var overNum // 마우스 올렸을때 해당 태그의 순번
       
       $(document).ready(function(){
              
              $mainMenu = $(".menu_item");
              
              $mainMenu.bind("mouseenter", onOver);
              $mainMenu.bind("mouseleave", onOut);
       });
       
       function onOver(){
              
              overNum = $mainMenu.index($(this)) //  마우스를 올렸을때 해당 태그의 순번
              //alert(overNum);
              
              //  <div class="menu_item_content">의 높이를 늘려주기
              $(this).stop();
              
              //  이미지들의 크기가 일정할 경우 하는 방법
              //$(this).animate({"height": openHeight}, 300, "easeOutExpo");
              
              //  이미지들으 크기가 다를경우 배열을 이용해서 하는 방법
              $(this).animate({"height": openArray[overNum]}, 300, "easeOutExpo");
              
              //  <div class="menu_item_content"> 아래에 있는 image태그들의 top을 올려주기
              $(this).children().stop();
              $(this).children().animate({"top":-closeHeight},300, "easeOutExpo");
       }
       
       function onOut(){
              
              //  <div class="menu_item_content">의 높이를 줄여주기
              $(this).stop();
              $(this).animate({"height": 30}, 300, "easeOutExpo");
              
              //  <div class="menu_item_content"> 아래에 있는 image태그들의 top을 내려주기
              $(this).children().stop();
              $(this).children().animate({"top":0},300, "easeOutExpo");
       }
</script>
</head>
<body>
       <div class="accordion_menu">
              <div class="menu_item">
                     <div class="menu_item_content">
                           <img src="images/menu_1.png">
                           <img src="images/menu_1_over.png" >
                     </div>
              </div>
              
              <div class="menu_item">
                     <div class="menu_item_content">   
                           <img src="images/menu_2.png">
                           <img src="images/menu_2_over.png" >
                     </div>
              </div>
              
              <div class="menu_item">
                     <div class="menu_item_content">
                           <img src="images/menu_3.png">
                           <img src="images/menu_3_over.png" >
                     </div>
              </div>
              
              <div class="menu_item">
                     <div class="menu_item_content">
                           <img src="images/menu_4.png">
                           <img src="images/menu_4_over.png" >
                     </div>
              </div>
              <div class="menu_item">
                     <div class="menu_item_content">
                           <img src="images/menu_5.png">
                           <img src="images/menu_5_over.png" >
                     </div>
              </div>
              
       </div>
</body>
</html>





2depth 메뉴 네비게이션-동시에 4가지이벤트


레퍼런스 이미지 메인메뉴 파일들png


레퍼런스 이미지 서브메뉴 파일들png



핵심
-탭키로 작동이 되어야함.
-동시에 4가지 모션을 한다.
메인메뉴가 들어가고 나가고
서브메뉴가 들어가고 나가고

mainMenu는 자식태그인 a를 올렸다가 내리는 것    
subMenu는 자식태그인 li를 올렸다가 내리는 것

구조
    <div class="mainMenu">
        <a href="#"><img src="img/menu0.png" alt="" /> </a>                 
    </div>
    <div class="subMenu">
        <ul class="subMenu_list">
            <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
        </ul>                
    </div>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<style type="text/css">
body,p,ul,li{
      margin:0px; padding:0px; list-style:none;
}
body{
      background:url(img/index_back.gif);
}
div#header_wrap{
      width:100%; height:122px; background:url(img/header_bg.gif) repeat-x;
}
div#header_center{
      width:980px; height:122px; margin:0px auto; position:relative; left:0px; top:0px;
      /* 반응형일경우는 해상도가 980px 보다 작을때는 메뉴구조를 새로 바꾸는 것이 좋다 ( 예) 네비게이션 전체를 사라지게 하고 메뉴버튼으로 보이게 */
}
      
span#logo{
      position:absolute; left:0px; top:20px;
}
ul#mainMenu_list>li{
      float:left; margin-right:50px; position:relative; left:0px; top:0px;
}
ul#mainMenu_list{
      position:absolute; left:250px; top:30px;
}
div.mainMenu{
      height:20px; overflow:hidden; position:relative; left:0px; top:0px;
}
div.mainMenu>a{
      position:relative; left:0px; top:0px; /* a테그를 움직이게 하므로 반드시 position 값이 존재해야 한다. */
}
div.subMenu{
      width:300px; position:absolute; left:0px; top:65px;
}
ul.subMenu_list>li{
      float:left; margin-right:10px;
}
</style>
<script type="text/javascript">
      var $mainMenu;
      var $subMenu;
      
      $(document).ready(function(){
            
            $mainMenu = $(".mainMenu").children();
            
            $subMenu = $(".subMenu");
            
            $subMenu.css("opacity", 0) //  최초에 subMenu들은 안보여야함.
            $subMenu.hide() //  최초에 subMenu들은 안보여야함.
            
            $mainMenu.bind("mouseenter", onOver);
      });
      
      function onOver(){
            
            //  기본: 처음에는 모든 $mainMenu 사라지게 하기
            $mainMenu.stop();
            $mainMenu.animate({"top":0}, 200, "easeOutExpo");
            
            //  기본: 처음에는 모든 $subMenu 사라지게 하기
            $subMenu.stop();
            $subMenu.animate({"left":0, "opacity":0}, 200, "easeOutExpo", function(){
                  
                  //  opacity가 0이지만, 존재하기때문에 없애주어야함.
                  $(this).hide();
            });
            
            $(this).stop() //  기존의 이벤트가 있다면 멈춰주기
            
            //  마우스가 올라간 $MainMenu의 top 속성을 위로 올려주기
            $(this).animate({"top":-25}, 200, "easeOutExpo");
            
            //  셀럭터 설명
            //  $(this).parent() => 해당 mainMenu
            //  $(this).parent().next() => 해당 subMenu
            $(this).parent().next().show();
            $(this).parent().next().stop();
            $(this).parent().next().animate({"left":-30, "opacity":1}, 200, "easeOutExpo", function(){
                  
            });
            
      }
      
      
      
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>서브메뉴네비게이션_웹접근성</title>
</head>
<body>
      <div id="header_wrap">
      <div id="header_center">
            <span id="logo"><a href="#"><img src="img/logo.png" alt="" /></a></span>
            <ul id="mainMenu_list">
                  <li>
               
                  <div class="mainMenu">
                        <a href="#"><img src="img/menu0.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                              <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                   
                </li>
               
                <li>
                  <div class="mainMenu">
                        <a href="#"><img src="img/menu1.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                              <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
                <li>
                  <div class="mainMenu">
                        <a href="#"><img src="img/menu2.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                              <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
                <li>
                  <div class="mainMenu">
                        <a href="#"><img src="img/menu3.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                              <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
                <li>
                  <div class="mainMenu">
                        <a href="#"><img src="img/menu4.png" alt="" /> </a>                  
                    </div>
                    <div class="subMenu">
                        <ul class="subMenu_list">
                              <li><a href="#"><img src="img/love_01_off.png" alt="" /></a></li>
                            <li><a href="#"><img src="img/love_02_off.png" alt="" /></a></li>
                            <li><a href="#" id="last_subMenu"><img src="img/love_03_off.png" alt="" /></a></li>                   
                        </ul>                
                    </div>       
                </li>
               
           
           
           
            </ul>       
       
        </div>   
    </div>
    <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />
</body>
</html>










이미지 갤러리
화살표 버튼을 클릭하면, 그림모임페이지가 이동.
thum이미지 클릭시 오른쪽에 크게 표시

작업개요
1. 레아웃구조와 각 id/cass 명 확인
2. 각섬네일 이미지에 보여질 큰이미지의 경로를 a 테그를 이용하여 링크설정 .
3. 각 a 테그를 클릭하면 a 테그의 경로를 얻어내어 메인이미지 앞에 넣어주고 기존에 이미지는 사라지게 한다.
   주의)  a테그를 클릭해서 스크립트를 실행시킨다음 a 테그자제의 링크가 동작안되도록 return false  설정
4. next 버튼을 클릭하면 pageWrap 의 현제 margin 값을 얻어내어 -300px (pageWrap 전체의 가로) 으로 animate 를 적용.
5. prev 버튼을 클릭하면 pageWrap 의 현제 margin 값을 얻어내어 +300px (pageWrap 전체의 가로) 으로 animate 를 적용.

-index(): 해당태그의 순번을 출력함.





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>imgGallery</title>
<script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
<style type="text/css">
*{
    margin:0;
    padding:0;
    border:0;
}
body{
    background:black;
}
#container{
    width:1000px;
    margin:100px auto;
}
#navi{
    width:300px;
    float:left;
}
#navi ul{
    height:460px;
}
#navi li{
    list-style-type:none;
    width:150px;
    float:left;
}
#navi li img{
    border:3px solid white;
}
#navi{
    overflow:hidden;
    position:relative;
    left:0px;
    top:0px;
}
#navi .pageWrap{
    width:900px; position:relative; left:0px; top:0px;
}
#navi .pageWrap .page{
    width:300px;
    float:left;
}
#navi p{
    clear:both;
    width:300px;
    padding:10px 0;
    text-align:center;
}
#navi p img{
    cursor:pointer;
}
#main{
    width:650px;
    float:right;
    
}
#main img{
    position:absolute;
    border:3px solid white;
}
</style>
<script type="text/javascript">
    /*
    작업개요
    1. 레아웃구조와 각 id/cass 명 확인
    2. 각섬네일 이미지에 보여질 큰이미지의 경로를 a 테그를 이용하여 링크설정 .
    3. 각 a 테그를 클릭하면 a 테그의 경로를 얻어내어 메인이미지 앞에 넣어주고 기존에 이미지는
        사라지게 한다.
        주의)  a테그를 클릭해서 스크립트를 실행시킨다음 a 테그자제의 링크가 동작안되도록 return false  설정
    4. next 버튼을 클릭하면 pageWrap 의 현제 margin 값을 얻어내어 -300px (pageWrap 전체의 가로) 으로 animate 를 적용.
    5. prev 버튼을 클릭하면 pageWrap 의 현제 margin 값을 얻어내어 +300px (pageWrap 전체의 가로) 으로 animate 를 적용.
    */
    var $sumImg //  클릭된 이미지
    var $mainWrap //  클릭된 이미지가 보이는 화면
    var $newImg //  새로운 이미지
    
    var clickNum //  클릭한 이미지의 번호
    var pageWidth //  페이지 1장의 너비
    var $pageWrap //  이미지들을 담고 있는 페이지들을 감싸고 있는 것 
    
    var currentPosition //  현재의 좌표
    var endX //  마지노선
    
    $(document).ready(function(){
        
        $sumImg = $(".page li");
        $mainWrap = $("#main");
        
        $sumImg.bind("click", onClick);
        
        
        $pageWrap = $(".pageWrap") //  페이지 감싸지는 부분
        //  페이지가 보이는 화면의 내부 너비: margin, padding, border 0이므로 outter 나 inner든 width 같음
        pageWidth = $("#navi").innerWidth();
        endX=-(pageWidth*$(".page").size()-pageWidth) //  마지노선
        
        
        $(".prev").bind("click", onPrev) //  이전버튼에 이벤트 달기: 페이지가 이동함.
        $(".next").bind("click", onNext) //  다음버튼에 이벤트 달기: 페이지가 이동함.
        
    });
    
    function onClick(){
        
        //  이미지들의 이름이 통일 되어있기때문에, 이미지 개수
        clickNum = $sumImg.index($(this)) + 1 //  index()함수: 해당 순번을 알아내는 함수
        
        //alert(clickNum);
        $newImg = $("<img src='images/photo" + clickNum + ".jpg' />");
        
        $newImg.appendTo($mainWrap) //  메인창 뒤에 붙이기
        
        $mainWrap.children().eq(0).animate({"opacity":0}, 200, "easeOutExpo",function(){
            $(this).remove() //  기존 것 지워주기
        });
        
        return false //  a 링크되는 것 막아주기
    }
    
    function onPrev(){
        
        currentPosition = $pageWrap.position().left;
        //alert(currentPosition);
        
        $pageWrap.animate({"left":currentPosition + pageWidth});
    }   
    
    function onNext(){
        
        currentPosition = $pageWrap.position().left;
        //alert(currentPosition);
        
        $pageWrap.animate({"left":currentPosition - pageWidth});
    }
</script>
    </head>
    <body>
        <div id="container">
         
          
            <div id="navi">
             
              <p><img src="images/btn_prev.jpg" alt="뒤로" class="prev" /> <img src="images/btn_next.jpg" alt="앞으로" class="next" /></p>
                <div class="pageWrap">
                    <div  class="page">
                        <ul>
                            
                            <li><img src="images/photo1_thum.jpg" alt="" /></li>
                            <li><img src="images/photo2_thum.jpg" alt="" /></li>
                            <li><a href="images/photo3.jpg"><img src="images/photo3_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo4.jpg"><img src="images/photo4_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo5.jpg"><img src="images/photo5_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo6.jpg"><img src="images/photo6_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo7.jpg"><img src="images/photo7_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo8.jpg"><img src="images/photo8_thum.jpg" alt="" /></a></li>
                        </ul>
                        <p><img src="images/btn_next.jpg" alt="" class="next" /></p>
                    </div>
                    <div  class="page">
                        <ul>
                            <li><a href="images/photo9.jpg"><img src="images/photo9_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo10.jpg"><img src="images/photo10_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo11.jpg"><img src="images/photo11_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo12.jpg"><img src="images/photo12_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo13.jpg"><img src="images/photo13_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo14.jpg"><img src="images/photo14_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo15.jpg"><img src="images/photo15_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo16.jpg"><img src="images/photo16_thum.jpg" alt="" /></a></li>
                        </ul>
                    
                    </div>
                    <div  class="page">
                        <ul>
                            <li><a href="images/photo17.jpg"><img src="images/photo17_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo18.jpg"><img src="images/photo18_thum.jpg" alt="" /></a></li>
                            <li><a href="images/photo19.jpg"><img src="images/photo19_thum.jpg" alt="" /></a></li>
                        </ul>
                        <p><img src="images/btn_prev.jpg" alt="뒤로" class="prev" /></p>
                    </div>
                </div>
                
                
                
            </div>
            <div id="main">
       
                <img src="images/photo1.jpg" alt="" />
            </div>
        </div>
    </body>
</html>





슬라이드 이미지 갤러리
왼쪽, 오른쪽 버튼을 누르면 4장이 1개의 슬라이드를 구성하는 슬라이드들이 움직인다.




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>sumimg_Slide</title>
<script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
<script type="text/javascript">
    
    var $slideInner //  inner들을 나타내는 변수
    var slideWidth //  슬라이드 너비
    var currentPosition //  슬라이드 현재 위치
    
    $(document).ready(function(){
        $slideInner = $("#slideInner");
        slideWidth = $("#slide").innerWidth();
        
        //alert(slideWidth);
        
        //  초반 세팅1
        //  slideInner의 너비를 column의 개수만큼의 너비로 늘려주기: .column의 개수만큼 너비를 곱해줌.
        $slideInner.css("width", slideWidth * $(".column").size() );
        
        //  초반 세팅2
        //  맨마지막에 있는 이미지를 맨 앞으로 이동시키기
        $slideInner.children().last().prependTo($slideInner);
        
        //  초반 세팅3
        //  맨 마지막 column을 앞으로 이동시켰기에, 1번째 column이 옆으로 이동시켜져있으므로, left속성을 이용해서 원상복귀하기
        $slideInner.css("left", -slideWidth);
        
        $("#slideNext").bind("click", onNext);
        $("#slidePrev").bind("click", onPrev);
        //alert(0);
    });
    
    function onNext(){
        //alert(1);
        currentPosition = $slideInner.position().left;
        
        // 
        //  $("#slideInner:not(:animated)") 을 통해서 중복 클릭 막음
        $("#slideInner:not(:animated)").animate({"left":currentPosition-slideWidth}, function(){
            
            //  맨 첫 column을 slideInner의 맨 뒤로 붙이기
            $slideInner.children().first().appendTo($slideInner);
            $slideInner.css("left", -slideWidth);
        });
    }
    
    function onPrev(){
        //alert(2);
        currentPosition = $slideInner.position().left;
        
        //  $("#slideInner:not(:animated)") 을 통해서 중복 클릭 막음
        $("#slideInner:not(:animated)").animate({"left":currentPosition+slideWidth}, function(){
            
            //  맨 마지막 column을 slideInner의 맨 앞으로 붙이기
            $slideInner.children().last().prependTo($slideInner);
            //  맨뒤에 붙음으로써, left속성을 다시 초기위치로 바꿔주어야함.
            $slideInner.css("left", -slideWidth);
        });
    }
    
    
</script>
<style type="text/css">
*{
    margin:0;
    padding:0;
}
#slideInner{
    position:relative;
    left:0px;
    top:0px;
}
#slideWrap{
    margin:100px auto;
    width:620px;
    height:135px;
    padding:5px;
    background:url("./images/background.gif");
    position:relative;
    
}
#slidePrev{
    position:absolute;
    top:65px;
    left:-8px;
    cursor:pointer;
    z-index:10;
}
#slideNext{
    position:absolute;
    top:65px;
    right:-8px;
    cursor:pointer;
    z-index:10;
}
#slide{
    width:100%;
    height:100%;
}
#slideInner ul.column{
    width:605px;
    height:105px;
    padding:15px 0 15px 15px;
    list-style-type:none;
    float:left;
}
#slideInner ul.column li{
    float:left;
    margin-right:10px;
    display:inline;
}
#slideInner ul.column li img{
    border:none;
}
        </style>
    </head>
    <body>
    
        <div id="slideWrap">
            <p id="slidePrev"><img src="./images/btn_prev.gif" alt="앞으로" /></p>
            <p id="slideNext"><img src="./images/btn_next.gif" alt="뒤로" /></p>
            <div id="slide">
                <div id="slideInner">
                    <ul class="column">
                        <li><a href="#"><img src="./images/photo1_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo2_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo3_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo4_thum.jpg" alt="" /></a></li>
                    </ul>
                    <ul class="column">
                        <li><a href="#"><img src="./images/photo5_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo6_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo7_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo8_thum.jpg" alt="" /></a></li>
                    </ul>
                    <ul class="column">
                        <li><a href="#"><img src="./images/photo9_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo10_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo11_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo12_thum.jpg" alt="" /></a></li>
                    </ul>
                    <ul class="column">
                        <li><a href="#"><img src="./images/photo13_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo14_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo15_thum.jpg" alt="" /></a></li>
                        <li><a href="#"><img src="./images/photo16_thum.jpg" alt="" /></a></li>
                    </ul>
                </div>
            </div>
        </div>
    </body>
    
</html>







animate(이동, 효과)

css 위치 속성값을 바꾸면서 효과 넣기
show, hide, slideUp, slideDown 같은 기능들도 animate를 통해서 표현가능





길이를 넓혀도 가능(지역변수로 길이 가변 설정)




효과 적용된 화면




<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>animate()</title>
    <style>
       #panel{
           border:1px #000000 solid;
           width:820px;
           height:220px;         
           text-align:center;        
           position:relative;
           margin-bottom:10px;       
       }
       
       #imgWrap{         
           width:220px;
           height:220px;                    
           position:absolute; left:0px; top:0px;       
       }   
       
    </style>
       
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script  type="text/javascript"  src="../libs/jquery.easing.1.3.js"></script>
    <script>
       
       var $imgWrap;
       
       $(document).ready(function(){
           
           $imgWrap = $("#imgWrap");
           
           $("#btn_Start").bind("click", onMoving);
           
       });
    
       function onMoving(){
           
           //  이동할 값을 알기위해서 아래 지역변수 leftPosition 생성
           var leftPosition = $("#panel").innerWidth() - $imgWrap.outerWidth();
           
           //  여러번 클릭했을시 이벤트 중복시 중지해라.
           $imgWrap.stop();
           
           //  최초 설정시 0위치로 해두기
           $imgWrap.css({"left":0, "opacity":1});
           
           //  함수 설명
           //  animate({바꿔줄 속성명:속성값, 바꿔줄 속성명:속성값, ..... }, 속도, 효과방식, 끝난 다음발생할 임의함수{} )
           $imgWrap.animate({"left":leftPosition, "opacity":0}, 1000, "easeOutExpo", function(){
               
               $imgWrap.css({"left":0, "opacity":1});
               
           } );
       }   
    </script>
</head>
<body>
   
    <div id="panel">
        <div id="imgWrap">
            <img id="img_1" src="images/img1.jpg">
        </div>       
     </div>
    
     <div>
       <button id="btn_Start">시작</button>
    </div>
   
</body>
</html>




이미지 슬라이더 직접 만들기(setInterval, animate 활용하기)

전제
div 아래에 이미지가 있음.
이미지가 보일 화면의 넓이
논리 재정리

1. 모든 이미지들을 보이는 창  "#banner_container" 아래에 놓아두기
2. 첫번째 이미지만 보이는 창  "#banner_container" 에 놓아두기
3. 현재 이미지를 올려주면서(top),  투명도 조절(opacity)
4. 다음 이미지를 따라서  올렺기(top), 투명도 조절(opacity)
5. 현재 이미지의 위치만 다시 아래로  내려주기

6. 현재변수, 다음변수 숫자를  바꿔주기. 만약 4를 넘었으면 초기화 해주기






<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>imgSlide</title>
    
    <style>
       body{
           background:url(images/index_back.gif)
       }
    
       #banner_container{
           position:relative;
           width:800px;
           
           height:380px;
           border:1px solid #cccccc;
           top:100px;
           left:100px;
           overflow:hidden;
           
       }
       
       #banner_container div{
           position:absolute;
           width:800px;
           height:380px;
           
           top:0;
           background:#ffffff;
       }
       
       
    </style>
    
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script  type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
    <script type="text/javascript">      
       //  논리 재정리
       /*
        *  1. 모든 이미지들을 보이는 창 "#banner_container" 아래에 놓아두기
        *  2. 첫번째 이미지만 보이는 창 "#banner_container" 에 놓아두기
        *  3. 현재 이미지를 올려주면서(top), 투명도 조절(opacity)
        *  4. 다음 이미지를 따라서 올렺기(top), 투명도 조절(opacity)
        *  5. 현재 이미지의 위치만 다시 아래로 내려주기
        *  6. 현재변수, 다음변수 숫자를 바꿔주기. 만약 4를 넘었으면 초기화 해주기
        */
       //  고정값
       var $imgWrap;
       var imgHeight //  이미지 높이
       var imgNum //  이미지 개수
       
       //  가변값
       var currentIndex = 0 // 현재 박스에 들어와 있는 인덱스
       var nextIndex //  다음에 올 순번
       
       $(document).ready(function(){
           $imgWrap = $("#banner_container").children();
           imgHeight = $imgWrap.outerHeight();
           //alert(imgHeight);
           
           imgNum = $imgWrap.size();
           //alert(imgNum);
           
           //  최초에 이미지들 전부 보여지는 밑에 전부 모아놓기
           $imgWrap.css({"top":imgHeight, "opacity":0.2})
           
           //  첫번째 이미지는 처음에 보이게해야함
           $imgWrap.eq(0).css({"top":0,"opacity":1})
           
           setInterval(onCount, 1000);
       });
       
       function onCount(){
           
           //  다음이미지 번호를 현재이미지 번호 + 1로 해주기
           nextIndex = currentIndex + 1;
           
           //  이미지가 총 4장이므로 4가 넘어가면 다시 초기화
           if(nextIndex==4){
               nextIndex = 0;
           }
           
           onSlide();
           
           //  다음에 보여져야할 현재이미지번호를 방금전에 설정한 다음이미지번호로 같게하기
           currentIndex = nextIndex;
       }
       
       function onSlide(){
           
           $imgWrap.eq(currentIndex).animate({"top":-imgHeight, "opacity":0.2}, 500, "easeOutExpo", function(){
               
               //  위로 올라간 이미지를 다시 아래로 내려주기
               $(this).css({"top":imgHeight});
           });
           $imgWrap.eq(nextIndex).animate({"top":0, "opacity":1}, 200, "easeOutExpo");
       }
    </script>
</head>
<body>
    <div id="banner_container">
       <div>
       <img src="images/slide1.jpg">
       </div>
       <div>
           <img src="images/slide2.jpg">
       </div>
       <div>
           <img src="images/slide4.jpg">
       </div>
       <div>
           <img src="images/slide5.jpg">
       </div>
       
    </div>   
</body>
</html>







이미지 갤러리

작업개요
1. 레아웃구조와 각 id/cass 명 확인
2. 각섬네일 이미지에 보여질 큰이미지의 경로를 a  테그를 이용하여 링크설정 .
3. 각 a 테그를 클릭하면 a 테그의 경로를  얻어내어 메인이미지 앞에 넣어주고 기존에  이미지는
    사라지게 한다.
    주의)  a테그를 클릭해서 스크립트를  실행시킨다음 a 테그자제의 링크가 동작안되도록  return false  설정
4. next 버튼을 클릭하면 pageWrap 의 현제  margin 값을 얻어내어 -300px (pageWrap 전체의  가로) 으로 animate 를 적용.
5. prev 버튼을 클릭하면 pageWrap 의 현제  margin 값을 얻어내어 +300px (pageWrap 전체의  가로) 으로 animate 를 적용.

tip!
a링크를 누르면 화면 이동을 금지하는 방법

return false;




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>imgGallery</title>
<script type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="../libs/jquery.easing.1.3.js"></script>
<style type="text/css">
*{
    margin:0;
    padding:0;
    border:0;
}
body{
    background:black;
}
#container{
    width:1000px;
    margin:100px auto;
}
#navi{
    width:300px;
    float:left;
}
#navi ul{
    height:460px;
}
#navi li{
    list-style-type:none;
    width:150px;
    float:left;
}
#navi li img{
    border:3px solid white;
}
#navi{
    overflow:hidden;
}
#navi .pageWrap{
    width:900px;
}
#navi .pageWrap .page{
    width:300px;
    float:left;
}
#navi p{
    clear:both;
    width:300px;
    padding:10px 0;
    text-align:center;
}
#navi p img{
    cursor:pointer;
}
#main{
    width:650px;
    float:right;
}
#main img{
    position:absolute;
    border:3px solid white;
}
</style>
<script type="text/javascript">
/*
작업개요
1. 레아웃구조와 각 id/cass 명 확인
2. 각섬네일 이미지에 보여질 큰이미지의 경로를 a 테그를 이용하여 링크설정 .
3. 각 a 테그를 클릭하면 a 테그의 경로를 얻어내어 메인이미지 앞에 넣어주고 기존에 이미지는
    사라지게 한다.
    주의)  a테그를 클릭해서 스크립트를 실행시킨다음 a 테그자제의 링크가 동작안되도록 return false  설정
4. next 버튼을 클릭하면 pageWrap 의 현제 margin 값을 얻어내어 -300px (pageWrap 전체의 가로) 으로 animate 를 적용.
5. prev 버튼을 클릭하면 pageWrap 의 현제 margin 값을 얻어내어 +300px (pageWrap 전체의 가로) 으로 animate 를 적용.
*/
    var $sumImg //  thum이미지들
    var $mainImg //  큰 창에 보여지는 1개 대표 이미지
    var $newImg //  새로 바뀔 이미지
    
    $(document).ready(function(){
       
       //  .page 아래의 a 태그를 잡아줌
       $sumImg = $(".page a");
       $mainImg = $("#main").children();
       
       $sumImg.bind("click", onChange);
       
       
    });
    function onChange(){
       
       $newImg = $(this).attr("href");
       $mainImg.attr("src", $newImg);
       
       return false //  a링크를 누르면 화면 이동을 금지하는 방법
    }
</script>
    </head>
    <body>
       <div id="container">
           <div id="navi">
               <div class="pageWrap">
                  <div  class="page">
                      <ul>
                          
                          <li><a href="images/photo1.jpg"><img src="images/photo1_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo2.jpg"><img src="images/photo2_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo3.jpg"><img src="images/photo3_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo4.jpg"><img src="images/photo4_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo5.jpg"><img src="images/photo5_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo6.jpg"><img src="images/photo6_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo7.jpg"><img src="images/photo7_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo8.jpg"><img src="images/photo8_thum.jpg" alt="" /></a></li>
                      </ul>
                      <p><img src="images/btn_next.jpg" alt="" class="next" /></p>
                  </div>
                  <div  class="page">
                      <ul>
                          <li><a href="images/photo9.jpg"><img src="images/photo9_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo10.jpg"><img src="images/photo10_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo11.jpg"><img src="images/photo11_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo12.jpg"><img src="images/photo12_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo13.jpg"><img src="images/photo13_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo14.jpg"><img src="images/photo14_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo15.jpg"><img src="images/photo15_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo16.jpg"><img src="images/photo16_thum.jpg" alt="" /></a></li>
                      </ul>
                      <p><img src="images/btn_prev.jpg" alt="" class="prev" /> <img src="images/btn_next.jpg" alt="" class="next" /></p>
                  </div>
                  <div  class="page">
                      <ul>
                          <li><a href="images/photo17.jpg"><img src="images/photo17_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo18.jpg"><img src="images/photo18_thum.jpg" alt="" /></a></li>
                          <li><a href="images/photo19.jpg"><img src="images/photo19_thum.jpg" alt="" /></a></li>
                      </ul>
                      <p><img src="images/btn_prev.jpg" alt="앞으로" class="prev" /></p>
                  </div>
               </div>
           </div>
           <div id="main">
               
               <img src="images/photo1.jpg" alt="" />
           </div>
       </div>
    </body>
</html>






참고 사이트:
이벤트 스타일 확인 http://jqueryui.com/easing/



애니메이션 효과(animation) 1: hide, show

- 라이브러리 파일들을 위 사이트에서 다운받아야만이 위  효과를 줄 수 있음.
- api사전과 적용사례를 보면서 효과를 선택 및 적용






<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>show()_hide()</title>
    <style>
    
        #imgWrap
        {
            border:1px #000000 solid;
            width:220px;
            height:220px;       
            text-align:center;
            margin-bottom:20px;
                    
        }       
    </style>
    
    
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script  type="text/javascript"  src="../libs/jquery.easing.1.3.js"></script>
    <script>        
    //  easing 플러그인 다운      http://gsgd.co.uk/sandbox/jquery/easing/
    //  라이브러리 파일들을 위 사이트에서 다운받아야만이 위 효과를 줄 수 있음.
    
        var $imgWrap //  img 태그를 포함하는 태그
        
        $(document).ready(function(){
            
            $imgWrap = $("#imgWrap");
            
            $("#btn_hide").bind("click", onHide);
            
            $("#btn_show").bind("click", onShow);
            
            $("#btn_toggle").bind("click", onToggle);
            
        });
        
        function onHide(){
            
            //  http://api.jqueryui.com/hide/
            //  위 사이트에서 예제를 보면서, hide되는 스타일을 고를 수 있음
            $imgWrap.hide(3000, "easeOutExpo", function(){
                alert("hide");
            });
        }
        
        function onShow(){
            
            $imgWrap.show(3000, "easeOutExpo", function(){
                
                alert("show");
            });
        }
        
        function onToggle(){
            
            $imgWrap.toggle(3000, "easeOutCubic", function(){
                
                alert("toggle");
            });
        }
    
    
    
                
            
    </script>
</head>
<body>
    <div id="imgWrap">
            <img id="img1" src="images/img1.jpg">
    </div>      
   
    <div>
        <button id="btn_show">show</button>
        <button id="btn_hide">hide</button>
        <button id="btn_toggle">toggle</button>            
    </div>
   
</body>
</html>









애니메이션 효과(animation) 2: 메뉴, 서브메뉴 활용한 show, hide

- 잠깐 팁
  menu_list 안의 바로 밑에 있는  자식객체로 설정 (>) 하지않으면 그안에 있는 li  전부포함하게됨
  $(".menu_list li")는 클래스명이  menu_list 인 모든 li태그를 선택하는 선택자
  $(".menu_list > li")는 클래스명이  menu_list 인 바로 아래 자식 li태그를 선택하는 선택자





<!DOCTYPE HTML>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>showHide_Menu</title>
<style>
body,p,img,ul,li{
    margin:0px; padding:0px; list-style:none; border:none;
}
div#top_bg{
    width:100%; height:30px; background:#2c2c2c;
}
div#top{
    width:980px; height:30px; margin:0px auto;  background:#2c2c2c;
}
ul.top_list{
    float:right; margin-top:3px;
}
div#menu_bg{
    width:100%; height:80px; background:#edeef0;
}
div#menu{
    width:980px; margin:0px auto; background:#edeef0; position:relative; left:0px; top:0px;
}
span#logo{
    position:absolute; left:0px; top:10px;
}
ul.menu_list li{
    float:left; width:160px;  position:relative; text-align:center;
}
ul.menu_list{
    position:absolute; left:160px ; top:30px;
}
span.best_btn{
    position:absolute; left:830px; top:25px;
}
ul.subMenu{
    position:absolute; left:0px; top:50px;
}
div#sub_bg{
    width:100%; height:230px;   background:#000;
}
</style>
<script src="../libs/jquery-1.7.1.min.js"></script>
<script src="../libs/jquery.easing.1.3.js"></script>
<script>
    
    var $mainMenu;
    var $subMenu;
    
    $(document).ready(function(){
        
        //  잠깐 팁
        //  menu_list 안의 바로 밑에 있는 자식객체로 설정 (>) 하지않으면 그안에 있는 li 전부포함하게됨
        //  $(".menu_list li")는 클래스명이 menu_list 인 모든 li태그를 선택하는 선택자
        //  $(".menu_list > li")는 클래스명이 menu_list 인 바로 아래 자식 li태그를 선택하는 선택자
        
        $mainMenu = $(".menu_list>li");
        $subMenu = $(".subMenu");
        
        $subMenu.hide() //  초반에는 숨겨주기

        $mainMenu.bind("mouseover", onOver);
        $subMenu.bind("mouseout", onOut);
                
    });
    
    function onOver(){
        
        $subMenu.hide();
        $(this).children(".subMenu").show();
    }
    
    
    function onOut(){
        
        $(this).children().hide();
    }
    
</script>
</head>
<body>
    <div id="top_bg">
        <div id="top">
            <ul class="top_list">
                <li><img src="images/top_menu.gif" alt=""></li>
            </ul>
        </div>   
    </div>
    <div id="menu_bg">
        <div id="menu">
            <span id="logo">
                <img src="images/gnb_logo.gif" alt="">
            </span>
           
            <ul class="menu_list">
                <li><a href="#"><img src="images/gnb_menu1_off.gif" alt=""></a>
                        <ul class="subMenu">
                            <li><a href="#"><img src="images/sub1.png" alt=""></a></li>
                       
                        </ul>              
                </li>
             
                <li><a href="#"><img src="images/gnb_menu3_off.gif" alt=""></a>
                    <ul class="subMenu">
                            <li><a href="#"><img src="images/sub3.png" alt=""></a></li>
                       
                     </ul>              
                </li>
                <li><a href="#"><img src="images/gnb_menu4_off.gif" alt=""></a>
                    <ul class="subMenu">
                            <li><a href="#"><img src="images/sub4.png" alt=""></a></li>
                       
                     </ul>              
                </li>
                <li class="last" ><a href="#"><img src="images/gnb_menu1_off.gif" alt=""></a>
                    <ul class="subMenu">
                            <li><a href="#"><img src="images/sub5.png" alt=""></a></li>
                       
                        </ul>              
                </li>          
            </ul>
            <span class="best_btn">
                <a href="#"><img src="images/gnb_menu6.gif" alt=""></a>
            </span>   
       
        </div>
   
    </div>
   
</body>
</html>







애니메이션 효과(animation) 3: slideUp, slideDown

실제 메뉴바가 위에서 부터 천천히 보여지는 슬라이드 기능을 가진 show, hide
<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>slideUp()_Down()</title>
    <style>
        #imgWrap
        {
            border:1px #000000 solid;
            width:220px;
            height:220px;
            
            text-align:center;
            margin-bottom:20px;
                    
        }
        
        
    </style>
    
    
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script  type="text/javascript"  src="../libs/jquery.easing.1.3.js"></script>
    <script>
        
        var $imgWrap;
        
        $(document).ready(function(){
            
            $imgWrap = $("#imgWrap");
            
            $("#btn_hide").bind("click", onSlideDown);
            $("#btn_show").bind("click", onSlideUp);
            $("#btn_slideToggle").bind("click", onSlideToggle);
            
        });     
        
        function onSlideDown(){
            
            $imgWrap.slideDown(3000, "easeOutCubic", function(){
                //alert('slideShow');
            })
        }
        
        function onSlideUp(){
            
            $imgWrap.slideUp(3000, "easeOutCubic", function(){
                //alert('slideShow');
            })
        }
        
        function onSlideToggle(){
            
            $imgWrap.slideToggle(3000, "easeOutCubic", function(){
                //alert('slideShow');
            })
        }       
        
    </script>
</head>
<body>
    <div id="imgWrap">
        <img id="img_1" src="images/img1.jpg">
    </div>      
    
    <div>
        <button id="btn_hide">slideUp</button>
        <button id="btn_show">slideDown</button>
        <button id="btn_slideToggle">slideToggle</button>
    </div>
</body>
</html>






애니메이션 효과(animation) 4: 애니메이션 중복 막기1  "선택자:not(:animated)"

크게 2가지 방식이 있음
첫번째 방식(사용자가 천천히 확인하는 것: 메뉴바)
  "선택자:not(:animated)" 를 통해서, 이벤트 안걸려 있는 것만 애니메이션 걸기
두번째 방식(사용자가 빨리 확인하는 것: 그림클릭)
  stop() 메소드 사용: 현재 애니메이션 작동중인 것 중지
에니메이션을 안하고 있는 태그만 애니메이션 기능 넣기
<!DOCTYPE HTML>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>slide_Menu</title>
<style>
body,p,img,ul,li{
    margin:0px; padding:0px; list-style:none; border:none;
}
div#top_bg{
    width:100%; height:30px; background:#2c2c2c;
}
div#top{
    width:980px; height:30px; margin:0px auto;  background:#2c2c2c;
}
ul.top_list{
    float:right; margin-top:3px;
}
div#menu_bg{
    width:100%; height:80px; background:#edeef0;
}
div#menu{
    width:980px; height:80px; margin:0px auto; background:#edeef0; position:relative; left:0px; top:0px;
}
span#logo{
    position:absolute; left:0px; top:10px;
}
ul.menu_list li{
    float:left; width:160px;  position:relative; text-align:center;
}
ul.menu_list{
    position:absolute; left:160px ; top:30px;
}
span.best_btn{
    position:absolute; left:830px; top:25px;
}
ul.subMenu{
    position:absolute; left:0px; top:50px;
}
div#sub_bg{
    width:100%; height:230px;   background:#000;
}
</style>
<script src="../libs/jquery-1.7.1.min.js"></script>
<script src="../libs/jquery.easing.1.3.js"></script>
<script>
    
    var $mainMenu;
    var $subMenu;
    var $subBg;
    
    $(document).ready(function(){
        
        //  tip
        //  ul, li가 상위 관계의 태그들에 많이 쓰는 이유: ul 아래의 자식객체로는 li밖에 안들어옮. 그러므로 상위 관계 작업할때, ul, li를 많이 씀.
        
        $maniMenu = $(".menu_list").children();
        $subMenu = $(".subMenu");
        $subBg = $("#sub_bg");
        
        $subMenu.hide();
        $subBg.hide();
        
        $maniMenu.bind("mouseover", onOver);
        $subBg.bind("mouseout", onOut);
        
        
    });
    
    function onOver(){
        /*
        $subBg.slideDown(500, "easeOutExpo", function(){
            
            $subMenu.show();
        });
        */
        
        $("#sub_bg:not(:animated)").slideDown(500, "easeOutExpo", function(){
            
            $subMenu.show();
        });
        
    }
    
    function onOut(){
        $subMenu.hide();
        $("#sub_bg:not(:animated)").slideUp(500, "easeOutExpo", function(){
            
            
        });
        
        
    }
    
</script>
</head>
<body>
    <div id="top_bg">
        <div id="top">
            <ul class="top_list">
                <li><img src="../01_show()_hide()/images/top_menu.gif" alt=""></li>
            </ul>
        </div>   
    </div>
    <div id="menu_bg">
        <div id="menu">
            <span id="logo">
                <img src="../01_show()_hide()/images/gnb_logo.gif" alt="">
            </span>
           
            <ul class="menu_list">
                <li><a href="#"><img src="../01_show()_hide()/images/gnb_menu1_off.gif" alt=""></a>
                        <ul class="subMenu">
                            <li><a href="#"><img src="../01_show()_hide()/images/sub1.png" alt=""></a></li>
                       
                        </ul>              
                </li>
             
                <li><a href="#"><img src="../01_show()_hide()/images/gnb_menu3_off.gif" alt=""></a>
                    <ul class="subMenu">
                            <li><a href="#"><img src="../01_show()_hide()/images/sub3.png" alt=""></a></li>
                       
                     </ul>              
                </li>
                <li><a href="#"><img src="../01_show()_hide()/images/gnb_menu4_off.gif" alt=""></a>
                    <ul class="subMenu">
                            <li><a href="#"><img src="../01_show()_hide()/images/sub4.png" alt=""></a></li>
                       
                     </ul>              
                </li>
                <li class="last" ><a href="#"><img src="../01_show()_hide()/images/gnb_menu1_off.gif" alt=""></a>
                    <ul class="subMenu">
                            <li><a href="#"><img src="../01_show()_hide()/images/sub5.png" alt=""></a></li>
                       
                        </ul>              
                </li>          
            </ul>
            <span class="best_btn">
                <a href="#"><img src="../01_show()_hide()/images/gnb_menu6.gif" alt=""></a>
            </span>   
       
        </div>
   
    </div>
     <div id="sub_bg">
        
   
   
    </div>
   
</body>
</html>






애니메이션 효과(animation) 5: fadeIn, fadeOut, fadeToggle, fadeTo

* Tip: fadeTo
fadeTo
$imgWrap.fadeOut(3000, 0.2,  "easeOutExpo");
내가 원하는 투명도를 지정할 수 있음
또한 opacity 0으로 하면, 태그가  hidden이 되는게 아니라, opacity 0으로 되게됨.

<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>fadeIn()_Out()</title>
    <style>
        #imgWrap{
            border:1px #000000 solid;
            width:220px;
            height:220px;           
            text-align:center;
            margin-bottom:20px;
                    
        }
        
        
    </style>
    
    
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script  type="text/javascript"  src="../libs/jquery.easing.1.3.js"></script>
    <script>
        
        var $imgWrap;
        
        $(document).ready(function(){
            
            $imgWrap = $("#imgWrap");
            
            $("#btn_show").bind("click", onFadeIn);
            
            $("#btn_hide").bind("click", onFadeOut);
            
            $("#btn_fadeToggle").bind("click", onFadeToggle);
        });
        
        function onFadeIn(){
            
            //  내가 원하는 투명도를 지정할 수 있음
            $imgWrap.fadeIn(3000, "easeOutExpo", function(){
                //alert("1");
            });
        }
        
        function onFadeOut(){
            
            /*
            $imgWrap.fadeOut(3000, 0.2, "easeOutExpo", function(){
                //alert("2");
            });*/
            
            $imgWrap.fadeTo(3000, 0.2, "easeOutExpo");
            //  fadeTo
            //  $imgWrap.fadeOut(3000, 0.2, "easeOutExpo");
            //  내가 원하는 투명도를 지정할 수 있음
            //  또한 opacity 0으로 하면, 태그가 hidden이 되는게 아니라, opacity 0으로 되게됨.
            
        }
        
        function onFadeToggle(){
            
            //  내가 원하는 투명도를 지정할 수 있음
            $imgWrap.fadeToggle(3000, "easeOutExpo", function(){
                //alert("3");
            });
        }
        
        
            
    </script>
</head>
<body>
    <div id="imgWrap">
        <img id="img_1" src="images/img1.jpg">
    </div>      
    
    <div>
        <button id="btn_show">fadeIn</button>
        <button id="btn_hide">fadeOut</button>  
        <button id="btn_fadeToggle">fadeToggle</button>
    </div>
</body>
</html>





애니메이션 효과(animation) 6: 애니메이션 중복 막기2  stop()
크게 2가지 방식이 있음
첫번째 방식(사용자가 천천히 확인하는 것: 메뉴바)
  "선택자:not(:animated)" 를 통해서, 이벤트 안걸려 있는 것만 애니메이션 걸기
두번째 방식(사용자가 빨리 확인하는 것: 그림클릭)
  stop() 메소드 사용: 현재 애니메이션 작동중인 것 중지





<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>fadeMenu</title>
    <style>
    
    body,p,img,ul,li{
        margin:0px; padding:0px; border:none; list-style:none;
    }
    body{
        margin:200px; background:#000;
    }
    div#imgWrap{
        width:1000px; height:200px; float:left;
    }
    
    ul.img_list li{
        width:200px; float:left; margin-right:30px;
    }   
                
    </style>    
    
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script  type="text/javascript"  src="../libs/jquery.easing.1.3.js"></script>
    <script>
        
     var $sumImg;
    
    $(document).ready(function(){
        
        $sumImg = $(".img_list").children("li");
        
        $sumImg.css("opacity", 0.2);
        
        $sumImg.bind("mouseover", onOver);
        
        $sumImg.bind("mouseout", onOut);
     });
    
     function onOver(){
        //  stop: 하던 애니메이션이 있으면 하고, 진행해라
        $(this).stop();
        
        $(this).fadeTo(200, 1, "easeOutExpo");
     }
    
     function onOut(){
        $(this).stop();
        $(this).fadeTo(200, 0.2, "easeOutExpo");
        
     }
    
    </script>
</head>
<body>
    <div id="imgWrap">
        <ul class="img_list">
            <li> <a href="#"><img src="images/img3.jpg" alt="" /></a></li>
            <li> <a href="#"><img src="images/img4.jpg" alt="" /></a></li>
            <li> <a href="#"><img src="images/img5.jpg" alt="" /></a></li>
            <li> <a href="#"><img src="images/img6.jpg" alt="" /></a></li>     
        </ul>       
    </div>      
</body>
</html>


이미지 x축으로만 화면에서 움직이기




<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>ballMoving1</title>
    <style>
        body{
            font-size:9pt;      
        }       
        
        #panel{
            width:600px;
            height:300px;
            border:1px solid #999;
            position:relative;
        }
        
        #bar{
            position:absolute;
            left:50px;
            top:190px;
            width:500px;
            height:20px;
            z-index:10;
            
            border-top:solid 1px #999;
        }
        
        #img1{
    position: absolute;
    left: 50px;
    top: 60px;
    width: 128px;
    height: 76px;
        }
        
        #nav{
            text-align:center;
            width:600px;
        }
        
    </style>
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    
    <script>
    
       var $img //  움직일 이미지
       //  추가 tip: position이 relative 인 panel 아래에 absolute이기때문에 이러한 움직임 가능
      
       var $line //  이미지가 갖게 될 위치
       var start_x //  시작점(고정)
       var current_x //  매시간별 위치
       var end_x //  멈춤점(고정)
       var step = 20;   //  점진적 이동거리
      
       var myInterval //  interval을 담을 변수
      
       var isPlay = true //  시작, 멈춤 버튼 연속클리방지위한 기준변수
      
       $(document).ready(function(){
            
            $img = $("#img1");
            $line = $("#bar");
            
            
            start_x = $line.position().left;
            current_x = start_x;
            end_x = start_x + $line.outerWidth() - $img.innerWidth();
            
            
            $("#btn_start").bind("click", onStart);
            $("#btn_stop").bind("click", onStop);
        
       });
     
     
      function onStart(){
        
        if(isPlay == true){
            myInterval = setInterval( moving, 200);
            isPlay = false;
        }
        
      }
     
      function onStop(){
        
        clearInterval(myInterval);
        isPlay = true;
        
      }
     
      function moving(){    
        
        current_x = current_x + step;
        $img.css("left", current_x);
        
        if(current_x >= end_x || current_x <= start_x ){
            
            step = step * -1;
        }
        
        
        
      }
    </script>
</head>
<body>
    <div>
    
        <div id="panel">
            <div id="bar"> </div>
            <div id="img1">
                <img src="images/ball.jpg">
            </div>
        </div>
        <div id="nav">
            <button id="btn_start">시작</button>
            <button id="btn_stop">멈춤</button>
        </div>
    </div>
</body>
</html>








이미지 x축, y축으로 화면에서 움직이기(테두리 안에서만 튕기면서 움직이기)



<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>ballMoving2</title>
    <style>
        body{
            font-size:9pt;  
        }
            
        #panel{
            width:600px;
            height:400px;
            border:1px solid #999;
            position:relative;
        }
        
        #img1{
    position: absolute;
    left: 244px;
    top: 92px;
    width: 128px;
    height: 128px;
        }
        
        #nav{
            text-align:center;
            width:600px;
        }
        
    </style>
    
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script>        
        
        //  객체
        var $panel;
        var $img1;
        
        //  고정값
        var start_x;
        var end_x;
        var start_y;
        var end_y;
        
        //  변화값
        var current_x;
        var current_y;
        
        //  속도(고정)
        var step_x = 10;
        var step_y = 10;
        
        //  이벤트 방지 기준
        var isPlay = true;
        
        //  interval 담을 변수
        var xInterval;
        var yInterval;
 
        
        $(document).ready(function(){
            
            
            //  아래 변수들 선언
            $panel = $("#panel");
            $img1 = $("#img1");
            
            //  공의 최초 위치
            start_x = $img1.position().left
            start_y = $img1.position().top;
            
            //  테두리의 위치
            end_x = $panel.innerWidth() - $img1.outerWidth()
            end_y = $panel.innerHeight() - $img1.outerHeight();
            
            //  현재위치 최초 선언
            current_x = start_x;
            current_y = start_y;
            
            $("#btn_start").bind("click", onStart);
            $("#btn_stop").bind("click", onStop);
            
        });
    
        function onStart(){
            
            if(isPlay == true){
                
                xInterval = setInterval( xMoving, 100);
                yInterval = setInterval( yMoving, 100);
                
                isPlay = false;
            }
            
        }
        
        function onStop(){
            
            clearInterval(xInterval);
            clearInterval(yInterval);
            
            isPlay = true;  
        }
        
        function xMoving(){
            
            current_x = current_x + step_x;
                        
            $img1.css("left", current_x);
            
            if(current_x >= end_x || current_x <= 0){
                
                step_x *= -1;
            }
            
            
        }
        
        function yMoving(){
            
            current_y = current_y + step_y;
            
            $img1.css("top", current_y);
            
            if(current_y >= end_y || current_y <= 0){
                
                step_y *= -1;
            }
        }
        
    
    
    </script>
   
</head>
<body>  
    <div>
        
        <div id="panel">    
            <div id="img1">
                <img src="images/ball.jpg">
            </div>
        </div>
        <div id="nav">
            <button id="btn_start">시작</button>
            <button id="btn_stop">멈춤</button>
        </div>
    </div>
</body>
</html>







스크롤값이용 이미지 올리기



<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>스크롤이미지</title>
    <style>
        body{
            font-size:9pt;      
        }       
        #panel{
            width:600px;
            height:400px;
            border:1px solid #999;
            position:relative;
        }
        
        
        #image_Wrap{
            left:200px;
            top:80px;
            width:220px;
            height:220px;           
            border:1px solid #999;
            position:absolute;
            overflow:hidden;
        }
        
        #image_view img{
            display:block;
        }
        
        #nav{
            text-align:right;
            width:600px;
        }
    </style>
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    
    
    <script>
        
        //  보이는 화면의 크기보다 이미지가 클경우 사이즈를 줄이는 방법
        
        var $imgWrap //  그림이 보이는 크기
        var imgNum //  보여질 사진의 수
        
        //  시작, 끝(고정)
        var startY = 0;
        var endY;
        
        //  내려가는 크기(고정)
        var stepY = 2;
        
        //  현재의 위치(변화)
        var currentY = 0;
        
        //  interval 담을 그릇
        var myInterval;
        
        var isPlay = true;
        
        $(document).ready(function(){
            
            $imgWrap = $("#image_Wrap");
            imgNum = $imgWrap.children().size();
            
            //  전제: 이미지의 높이가 전부 동일한 사이즈, 부모의 css에서 overflow가 되어있음.(그렇기에 스크롤가능)
            //  이미지의 개수 10개중 scroll되어 다시 올라갈 높이는 최초 1개는 작동이 안됨.
            //  이미지의 총 개수에서 1개의 이미지 개수를 뺀 것
            endY = $imgWrap.innerHeight() * imgNum * 9;
            
            $("#btn_start").bind("click", onStart);
            
            $("#btn_stop").bind("click", onStop);
            
        });
        
        function onStart(){
            //alert('1');
            if(isPlay == true){
                //alert('2');
                myInterval = setInterval( onMoving ,20);
                isPlay = false;
            }
        }
        
        function onStop(){
            //alert('3');
            clearInterval(myInterval);
            isPlay = true;
        }
        
        function onMoving(){
            
            currentY = currentY + stepY;
            //alert('4');
            //  부모를 스크롤해준다.
            $imgWrap.scrollTop(currentY);
            
            if(currentY >= endY  ||  currentY <= 0){
                //alert('5');
                stepY *= -1;
            }
        }
    </script>
   
</head>
<body>
    
<div>
    
    <div id="panel">
        <div id="image_Wrap">   
            <img src="images/img1.jpg">
            <img src="images/img2.jpg">
            <img src="images/img3.jpg">
            <img src="images/img4.jpg">
            <img src="images/img5.jpg">
            <img src="images/img6.jpg">
            <img src="images/img7.jpg">
            <img src="images/img8.jpg">
            <img src="images/img9.jpg">
            <img src="images/img10.jpg">
        </div>
    </div>
    <div id="nav">
        <button id="btn_start">시작</button>
        <button id="btn_stop">멈춤</button>
    </div>
</div>
      
</body>
</html>




setInterval 활용한 랜덤숫자 css


$span.css("color", "#"+(parseInt(Math.random()*0xffffff)).toString(16) );
위 표현이 재미있다.
color를 랜덤함수를 통해서 임의로 부여할 수 있음




window.scrollTo(0, document.body.scrollHeight);
또한, 위표현도 재미있다.
window화면이 0부터 scroll되었을때의 마지막화면으로 이동시켜줌.

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>랜덤숫자출력(칼라)</title>
    <style>
                
    </style>
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script>        
        var num;
        var $panel;
        var $span;
        
        $(document).ready(function(){
            
            $panel = $("#panel");
            
            setInterval( onCount, 10);
            
        });
        
        //  onCount라는 함수 랜덤의 숫자 num 10부터 99까지를 span에 담음.
        //  css1: font-size 10~49부여해서 출력
        //  css2: color를 임의로 부여
        function onCount(){
            
            //  0부터 99까지 랜덤 정수 부여
            num = parseInt( Math.random() * 90 ) + 10;
            
            $span = $("<span></span>");
            
            $span.html(num);
            
            //  css1: font-size 10~49부여해서 출력
            $span.css("font-size", parseInt(Math.random() * 40) + 10 );
            
            //  css2: color를 임의로 부여
            $span.css("color", "#"+(parseInt(Math.random()*0xffffff)).toString(16) );
            
            //  css3: display로 inline-block 부여
            $span.css("display","inline-block");
            
            $span.appendTo($panel);
            
            //  window화면이 0부터 scroll되었을때의 마지막화면으로 이동시켜줌.
            window.scrollTo(0, document.body.scrollHeight);
            
        }
        
    </script>
</head>
<body>
    <div>       
        <div id="panel">
 
        </div>
    </div>      
</body>
</html>









clearInterval - setInterval 멈추기

clearInterval()는 정의내린 setInterval()를 멈출수 있음.
여기서 재미있는 부분
setInterval를 변수에 담아두면, 향후에,  interval를 멈추는 clearInterval()함수를 사용할 수  있음


<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>추첨기</title>
    <style>
        body{
            font-size:9pt;
        }
        #panel{
            border:1px #000000 solid;
            line-height:400px;
            font-size:100px;
            width:400px;
            height:400px;
            text-align:center;
            vertical-align:middle;      
        }
    </style>
    
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" >
        
        var $panel //  출력화면 변수
        var num //  결과 숫자 변수
        var totalMem //  참가인원 변수
        var mySetInterval //  setInterval 함수를 넣을 변수
        
        $(document).ready(function(){
            
            $panel = $("#panel");
            
            //  bind 함수를 통해서 click 이벤트에 onStart 함수를 묶음.
            $("#btn_Start").bind("click", onStart );
            
            //  bind 함수를 통해서 click 이벤트에 onStop 함수를 묶음.
            $("#btn_Stop").bind("click", onStop );
            
        });
        
        function onStart(){
            //  setInterval를 변수에 담아두면, 향후에, interval를 멈추는 clearInterval()함수를 사용할 수 있음
            mySetInterval = setInterval( onCountNum , 20);
            
        }
        
        function onCountNum(){
            totalMem = $("#totalWrap").val();
            
            num = parseInt( Math.random() * totalMem ) + 1;
            $panel.css("font-size", parseInt( Math.random() * 300 ) + 100);
            $panel.css("color", "black");
            $panel.html(num);
        }
        
        function onStop(){
            
            //  clearInterval()함수 사용법: clearInterval( 멈추고싶은 setInverval를 담은 변수 );
            clearInterval(mySetInterval);
            
            $panel.css({"font-size":300, "color":"red"});
            
        }
        
    </script>
</head>
<body>
    <div>
    
        <div id="panel" >
           
        </div>
        <div id="nav">
            참여인원 : <input type="text" id="totalWrap" value="10"></input>
            <button id="btn_Start">시작</button>
            <button id="btn_Stop">멈춤</button>
        </div>
   </div>
</body>
</html>







상태변수
특정이벤트 진행유무에 대해서 확인하기 위해, 특정 임의변수를 만들어서, 특정값을 집어넣음.
그 값에 따라서, if문으로 이벤트 제어


<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>추첨기</title>
    <style>
        body{
            font-size:9pt;
        }
        #panel{
            border:1px #000000 solid;
            line-height:400px;
            font-size:100px;
            width:400px;
            height:400px;
            text-align:center;
            vertical-align:middle;      
        }
    </style>
    
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" >
        
        var $panel;
        var num;
        var totalMem;
        var mySetInterval;
        var isPlay false;
        
        $(document).ready(function(){
            
            $panel $("#panel");
                        
            $("#btn_Start").bind("click", onStart);
            
            $("#btn_Stop").bind("click", onStop);
            
        });     
        
        function onStart(){
            
            if(isPlay == false){
                mySetInterval setInterval( onCount , 20);
                $("#totalWrap").attr("disabled""disabled");
                isPlay true;
            }
            
        }
        
        function onStop(){
            
            if(isPlay == true){
                clearInterval( mySetInterval );
                $panel.css({"font-size"300"color":"purple"});
                $("#totalWrap").removeAttr("disabled");
                isPlay false;
                
            }
            
            
        }
        
        function onCount(){
            totalMem $("#totalWrap").val();
            num parseInt( Math.random() totalMem ) 1;
            
            $panel.css({"font-size": parseInt( Math.random() 200 +100});
            $panel.html(num);
                        
        }
        
    </script>
</head>
<body>
    <div>
    
        <div id="panel" >
           
        </div>
        <div id="nav">
            참여인원 : <input type="text" id="totalWrap" value="10"></input>
            <button id="btn_Start">시작</button>
            <button id="btn_Stop">멈춤</button>
        </div>
   </div>
</body>
</html>










화면위치좌표







attr을 이용해서 특정 태그내 속성의 값을 확인, 변경
- attr을 이용해서 class 속성값 확인
attr을 이용해서 class 속성값 변경

attr을 이용해서 src 속성의 값을 변경해서 이미지 교체




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
 <head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <title>jQueryDom_test</title>
  <meta name="keywords" content="" />
  <meta name="description" content="" />
  <link rel="stylesheet" type="text/css" href="css/main.css" />
  <script src="libs/jquery-1.7.1.min.js"></script>
 
  <script>
 
      $(document).ready(function(){
        
        //  attr 을 이용해서, 태그내의 속성의 값을 확인하거나 변경가능
        var $visualImg = $("#visual_img");
        
        //  attr을 이용해서 class 속성값 확인
        alert( $visualImg.attr("class") );
        
        //  attr을 이용해서 class 속성값 변경
        $visualImg.attr("class", "img02");
        
        //  attr을 이용해서 src 속성의 값을 변경해서 이미지 교체
        $visualImg.attr("src", "images/main/visual_02.jpg");
        
      });
       
   
  </script>
 </head>
 <body>
  <div id="wrapper">
    <div id="header">
    <p class="skip"><a href="#container">본문 바로가기</a></p>
    <div class="headerInner">
    <h1 class="skip">LG디스플레이로고</h1>
      <p id="logo"><a href=""><img src="images/main/logo.gif" alt="LG디스플레이" /></a></p>
      <ul class="gnbMenu">
        <li><a href="#"><img src="images/main/util_home_off.gif"  alt="홈" /></a></li>
        <li><a href="#"><img src="images/main/util_faq_off.gif" alt="FAQ" /></a></li>
        <li><a href="#"><img src="images/main/util_sitemap_off.gif"  alt="sitemap" /></a></li>
        <li><a href="#"><img src="images/main/util_eng_off.gif" alt="ENG" /></a></li>
        <li class="last"><a href="#"><img src="images/main/util_chn_off.gif"  alt="CHN" /></a></li>
      </ul>
      <h2 class="skip">메인메뉴</h2>
      <ul id="mainMenu">
        <li class="mainMenu"><a href="#"><img class="onimg" src="images/main/gnb01_00_off.gif" alt="기업정보" /></a>
          <p><img src="images/main/gnb01_txt.gif" alt="기업정보 - 세계표준이 되는 디스플레이 기업 LG Display" /></p>
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb01_01_off.gif" alt="비젼" /></a></li>
           
          
                
            <li><a href="#"><img src="images/main/gnb01_02_off.gif" alt="ceo인사말" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_03_off.gif" alt="경영진소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_04_off.gif" alt="사업분야" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_05_off.gif" alt="사업장소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_06_off.gif" alt="연혁" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_07_off.gif" alt="Ci" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb02_00_off.gif" alt="제품기술정보" /></a>         
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb02_01_off.gif" alt="제품소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_02_off.gif" alt="기술소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_03_off.gif" alt="IPS" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_04_off.gif" alt="FPR3D" /></a></li>
          </ul>
        </li>
        <li class="mainMenu" ><a href="#"><img src="images/main/gnb03_00_off.gif"  alt="투자정보" /></a>        
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb03_01_off.gif" alt="뉴스&amp;행사" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_02_off.gif" alt="공시정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_03_off.gif" alt="주식정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_04_off.gif" alt="재무정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_05_off.gif" alt="IR자료실" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb04_00_off.gif"  alt="인재채용" /></a>      
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb04_01_off.gif"  alt="채용공고" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_02_off.gif"  alt="Why LG Display" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_03_off.gif"  alt="입사지원 가이드" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_04_off.gif"  alt="나의 지원내역" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb05_00_off.gif"  alt="홍보센터" /></a>     
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb05_01_off.gif"  alt="보도자료" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_03_off.gif"  alt="사이버체험관" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_04_off.gif"  alt="LG Display 사보" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_05_off.gif"  alt="홍보자료관" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb06_00_off.gif" alt="지속가능경영" /></a>       
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb06_01_off.gif"  alt="사회공헌" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_02_off.gif" alt="환경경영" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_03_off.gif"  alt="정도경영" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_04_off.gif"  alt="공정거래" /></a></li>
            <li><a href="http://www.lgdisplay.com/lgdhp/app/com/home.dev" target="_blank"><img src="images/main/gnb06_05_off.gif"  alt="지속가능경영보고서" /></a></li>
          </ul>
        </li>
      </ul>
     </div>
    </div>
    
    <div id="container">
      <div id="mainVisual">
          
          <ul class="script">
            <li class="visual01"><a href="#"><img id="visual_img" class="img01" src="images/main/visual_01.jpg" alt="" /></a></li>
        
          </ul> 
       
        </div>       
        <ul class="control">
            <li id="stop_btn"><a href="#"><img src="images/main/btn_prev.gif" alt="이벤트멈추기"  /></a></li>
            <li id="start_btn"><a href="#"><img src="images/main/btn_next.gif" alt="이벤트실행" /></a></li>
          </ul>
      </div>    
     
           
  </div>
 </body>
</html>






이벤트: click, mouseover, mouseout

이벤트를 걸어주는 방식 1. 바로 명령기재



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
 <head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <title>jQueryDom_test</title>
  <meta name="keywords" content="" />
  <meta name="description" content="" />
  <link rel="stylesheet" type="text/css" href="css/main.css" />
  <script src="libs/jquery-1.7.1.min.js"></script>
 
  <script>
 
      $(document).ready(function(){
        
        $visualImg = $("#visual_img");
        
        //  이벤트 클릭: click
        $visualImg.click(function(){
            
            alert("이미지가 클릭되었습니다.");
        });
        
        //  이벤트 마우스 over: mouseover
        
        $visualImg.mouseover(function(){
            
            alert("마우스가 올라갔습니다.");
        });
        
        $visualImg.mouseout(function(){
            
            alert("마우스가 벗어났습니다.");
        })
        
      });
       
   
  </script>
 </head>
 <body>
  <div id="wrapper">
    <div id="header">
    <p class="skip"><a href="#container">본문 바로가기</a></p>
    <div class="headerInner">
    <h1 class="skip">LG디스플레이로고</h1>
      <p id="logo"><a href=""><img src="images/main/logo.gif" alt="LG디스플레이" /></a></p>
      <ul class="gnbMenu">
        <li><a href="#"><img src="images/main/util_home_off.gif"  alt="홈" /></a></li>
        <li><a href="#"><img src="images/main/util_faq_off.gif" alt="FAQ" /></a></li>
        <li><a href="#"><img src="images/main/util_sitemap_off.gif"  alt="sitemap" /></a></li>
        <li><a href="#"><img src="images/main/util_eng_off.gif" alt="ENG" /></a></li>
        <li class="last"><a href="#"><img src="images/main/util_chn_off.gif"  alt="CHN" /></a></li>
      </ul>
      <h2 class="skip">메인메뉴</h2>
      <ul id="mainMenu">
        <li class="mainMenu"><a href="#"><img class="onimg" src="images/main/gnb01_00_off.gif" alt="기업정보" /></a>
          <p><img src="images/main/gnb01_txt.gif" alt="기업정보 - 세계표준이 되는 디스플레이 기업 LG Display" /></p>
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb01_01_off.gif" alt="비젼" /></a></li>
           
          
                
            <li><a href="#"><img src="images/main/gnb01_02_off.gif" alt="ceo인사말" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_03_off.gif" alt="경영진소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_04_off.gif" alt="사업분야" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_05_off.gif" alt="사업장소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_06_off.gif" alt="연혁" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_07_off.gif" alt="Ci" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb02_00_off.gif" alt="제품기술정보" /></a>         
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb02_01_off.gif" alt="제품소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_02_off.gif" alt="기술소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_03_off.gif" alt="IPS" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_04_off.gif" alt="FPR3D" /></a></li>
          </ul>
        </li>
        <li class="mainMenu" ><a href="#"><img src="images/main/gnb03_00_off.gif"  alt="투자정보" /></a>        
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb03_01_off.gif" alt="뉴스&amp;행사" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_02_off.gif" alt="공시정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_03_off.gif" alt="주식정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_04_off.gif" alt="재무정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_05_off.gif" alt="IR자료실" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb04_00_off.gif"  alt="인재채용" /></a>      
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb04_01_off.gif"  alt="채용공고" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_02_off.gif"  alt="Why LG Display" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_03_off.gif"  alt="입사지원 가이드" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_04_off.gif"  alt="나의 지원내역" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb05_00_off.gif"  alt="홍보센터" /></a>     
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb05_01_off.gif"  alt="보도자료" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_03_off.gif"  alt="사이버체험관" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_04_off.gif"  alt="LG Display 사보" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_05_off.gif"  alt="홍보자료관" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb06_00_off.gif" alt="지속가능경영" /></a>       
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb06_01_off.gif"  alt="사회공헌" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_02_off.gif" alt="환경경영" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_03_off.gif"  alt="정도경영" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_04_off.gif"  alt="공정거래" /></a></li>
            <li><a href="http://www.lgdisplay.com/lgdhp/app/com/home.dev" target="_blank"><img src="images/main/gnb06_05_off.gif"  alt="지속가능경영보고서" /></a></li>
          </ul>
        </li>
      </ul>
     </div>
    </div>
    
    <div id="container">
      <div id="mainVisual">
          
          <ul class="script">
            <li class="visual01"><a href="#"><img id="visual_img" class="img01" src="images/main/visual_01.jpg" alt="" /></a></li>
        
          </ul> 
       
        </div>       
        <ul class="control">
            <li id="stop_btn"><a href="#"><img src="images/main/btn_prev.gif" alt="이벤트멈추기"  /></a></li>
            <li id="start_btn"><a href="#"><img src="images/main/btn_next.gif" alt="이벤트실행" /></a></li>
          </ul>
      </div>    
     
           
  </div>
 </body>
</html>







이벤트를 걸어주는 방식 2. 임의 함수 function만들어서 이벤트에 걸어주기



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
 <head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <title>jQueryDom_test</title>
  <meta name="keywords" content="" />
  <meta name="description" content="" />
  <link rel="stylesheet" type="text/css" href="css/main.css" />
  <script src="libs/jquery-1.7.1.min.js"></script>
 
  <script>
 
      $(document).ready(function(){
        
        $visualImg = $("#visual_img");
        
        //  이벤트 클릭: click
        //  임의의 함수 onClick을 만들어서 이벤트 발생시 작동하는 함수 지정
        //  tip! onClick()이렇게 집어넣으면, 안되고, 함수명만 넣어야함!
        $visualImg.click( onClick );
        
      });
      
      function onClick(){
        
        alert("이미지를 클릭했습니다.");
      }
   
  </script>
 </head>
 <body>
  <div id="wrapper">
    <div id="header">
    <p class="skip"><a href="#container">본문 바로가기</a></p>
    <div class="headerInner">
    <h1 class="skip">LG디스플레이로고</h1>
      <p id="logo"><a href=""><img src="images/main/logo.gif" alt="LG디스플레이" /></a></p>
      <ul class="gnbMenu">
        <li><a href="#"><img src="images/main/util_home_off.gif"  alt="홈" /></a></li>
        <li><a href="#"><img src="images/main/util_faq_off.gif" alt="FAQ" /></a></li>
        <li><a href="#"><img src="images/main/util_sitemap_off.gif"  alt="sitemap" /></a></li>
        <li><a href="#"><img src="images/main/util_eng_off.gif" alt="ENG" /></a></li>
        <li class="last"><a href="#"><img src="images/main/util_chn_off.gif"  alt="CHN" /></a></li>
      </ul>
      <h2 class="skip">메인메뉴</h2>
      <ul id="mainMenu">
        <li class="mainMenu"><a href="#"><img class="onimg" src="images/main/gnb01_00_off.gif" alt="기업정보" /></a>
          <p><img src="images/main/gnb01_txt.gif" alt="기업정보 - 세계표준이 되는 디스플레이 기업 LG Display" /></p>
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb01_01_off.gif" alt="비젼" /></a></li>
           
          
                
            <li><a href="#"><img src="images/main/gnb01_02_off.gif" alt="ceo인사말" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_03_off.gif" alt="경영진소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_04_off.gif" alt="사업분야" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_05_off.gif" alt="사업장소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_06_off.gif" alt="연혁" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_07_off.gif" alt="Ci" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb02_00_off.gif" alt="제품기술정보" /></a>         
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb02_01_off.gif" alt="제품소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_02_off.gif" alt="기술소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_03_off.gif" alt="IPS" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_04_off.gif" alt="FPR3D" /></a></li>
          </ul>
        </li>
        <li class="mainMenu" ><a href="#"><img src="images/main/gnb03_00_off.gif"  alt="투자정보" /></a>        
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb03_01_off.gif" alt="뉴스&amp;행사" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_02_off.gif" alt="공시정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_03_off.gif" alt="주식정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_04_off.gif" alt="재무정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_05_off.gif" alt="IR자료실" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb04_00_off.gif"  alt="인재채용" /></a>      
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb04_01_off.gif"  alt="채용공고" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_02_off.gif"  alt="Why LG Display" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_03_off.gif"  alt="입사지원 가이드" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_04_off.gif"  alt="나의 지원내역" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb05_00_off.gif"  alt="홍보센터" /></a>     
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb05_01_off.gif"  alt="보도자료" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_03_off.gif"  alt="사이버체험관" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_04_off.gif"  alt="LG Display 사보" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_05_off.gif"  alt="홍보자료관" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb06_00_off.gif" alt="지속가능경영" /></a>       
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb06_01_off.gif"  alt="사회공헌" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_02_off.gif" alt="환경경영" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_03_off.gif"  alt="정도경영" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_04_off.gif"  alt="공정거래" /></a></li>
            <li><a href="http://www.lgdisplay.com/lgdhp/app/com/home.dev" target="_blank"><img src="images/main/gnb06_05_off.gif"  alt="지속가능경영보고서" /></a></li>
          </ul>
        </li>
      </ul>
     </div>
    </div>
    
    <div id="container">
      <div id="mainVisual">
          
          <ul class="script">
            <li class="visual01"><a href="#"><img id="visual_img" class="img01" src="images/main/visual_01.jpg" alt="" /></a></li>
        
          </ul> 
       
        </div>       
        <ul class="control">
            <li id="stop_btn"><a href="#"><img src="images/main/btn_prev.gif" alt="이벤트멈추기"  /></a></li>
            <li id="start_btn"><a href="#"><img src="images/main/btn_next.gif" alt="이벤트실행" /></a></li>
          </ul>
      </div>    
     
           
  </div>
 </body>
</html>








이벤트를 걸어주는 방식 3. bind, unbind 활용
bind: 이벤트명과 실행명령 걸기
unbind: 이벤트에 걸린 명령 해제




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
 <head>
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  <title>jQueryDom_test</title>
  <meta name="keywords" content="" />
  <meta name="description" content="" />
  <link rel="stylesheet" type="text/css" href="css/main.css" />
  <script src="libs/jquery-1.7.1.min.js"></script>
 
  <script>
        
        //  전역변수 선언해주기
        //  전역변수화 시켜주기, 어떤함수에서도 사용가능
        var $visualImg;
            
        
      $(document).ready(function(){
        
        $visualImg = $("#visual_img");
        
        //  이벤트 클릭: click
        //  임의의 함수 onClick을 만들어서 이벤트 발생시 작동하는 함수 지정
        //  tip! onClick()이렇게 집어넣으면, 안되고, 함수명만 넣어야함!
        //$visualImg.bind("click", onClick );
        
        $("#start_btn").bind("click", onStart );
        
        $("#stop_btn").bind("click", onStop );
        
      });
     
      function onStart(){
        alert("지금부터 이벤트가 시작됩니다.");
        $visualImg.bind("click", onClick);
      }
     
      function onStop(){
        alert("지금부터 이벤트가 해제됩니다.");
        $visualImg.unbind("click", onClick);
      }
     
      function onClick(){
        
        alert("이미지를 클릭했습니다.");
      }
   
  </script>
 </head>
 <body>
  <div id="wrapper">
    <div id="header">
    <p class="skip"><a href="#container">본문 바로가기</a></p>
    <div class="headerInner">
    <h1 class="skip">LG디스플레이로고</h1>
      <p id="logo"><a href=""><img src="images/main/logo.gif" alt="LG디스플레이" /></a></p>
      <ul class="gnbMenu">
        <li><a href="#"><img src="images/main/util_home_off.gif"  alt="홈" /></a></li>
        <li><a href="#"><img src="images/main/util_faq_off.gif" alt="FAQ" /></a></li>
        <li><a href="#"><img src="images/main/util_sitemap_off.gif"  alt="sitemap" /></a></li>
        <li><a href="#"><img src="images/main/util_eng_off.gif" alt="ENG" /></a></li>
        <li class="last"><a href="#"><img src="images/main/util_chn_off.gif"  alt="CHN" /></a></li>
      </ul>
      <h2 class="skip">메인메뉴</h2>
      <ul id="mainMenu">
        <li class="mainMenu"><a href="#"><img class="onimg" src="images/main/gnb01_00_off.gif" alt="기업정보" /></a>
          <p><img src="images/main/gnb01_txt.gif" alt="기업정보 - 세계표준이 되는 디스플레이 기업 LG Display" /></p>
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb01_01_off.gif" alt="비젼" /></a></li>
           
          
                
            <li><a href="#"><img src="images/main/gnb01_02_off.gif" alt="ceo인사말" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_03_off.gif" alt="경영진소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_04_off.gif" alt="사업분야" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_05_off.gif" alt="사업장소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_06_off.gif" alt="연혁" /></a></li>
            <li><a href="#"><img src="images/main/gnb01_07_off.gif" alt="Ci" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb02_00_off.gif" alt="제품기술정보" /></a>         
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb02_01_off.gif" alt="제품소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_02_off.gif" alt="기술소개" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_03_off.gif" alt="IPS" /></a></li>
            <li><a href="#"><img src="images/main/gnb02_04_off.gif" alt="FPR3D" /></a></li>
          </ul>
        </li>
        <li class="mainMenu" ><a href="#"><img src="images/main/gnb03_00_off.gif"  alt="투자정보" /></a>        
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb03_01_off.gif" alt="뉴스&amp;행사" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_02_off.gif" alt="공시정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_03_off.gif" alt="주식정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_04_off.gif" alt="재무정보" /></a></li>
            <li><a href="#"><img src="images/main/gnb03_05_off.gif" alt="IR자료실" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb04_00_off.gif"  alt="인재채용" /></a>      
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb04_01_off.gif"  alt="채용공고" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_02_off.gif"  alt="Why LG Display" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_03_off.gif"  alt="입사지원 가이드" /></a></li>
            <li><a href="#"><img src="images/main/gnb04_04_off.gif"  alt="나의 지원내역" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb05_00_off.gif"  alt="홍보센터" /></a>     
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb05_01_off.gif"  alt="보도자료" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_03_off.gif"  alt="사이버체험관" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_04_off.gif"  alt="LG Display 사보" /></a></li>
            <li><a href="#"><img src="images/main/gnb05_05_off.gif"  alt="홍보자료관" /></a></li>
          </ul>
        </li>
        <li class="mainMenu"><a href="#"><img src="images/main/gnb06_00_off.gif" alt="지속가능경영" /></a>       
          <ul class="subMenu">
            <li><a href="#"><img src="images/main/gnb06_01_off.gif"  alt="사회공헌" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_02_off.gif" alt="환경경영" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_03_off.gif"  alt="정도경영" /></a></li>
            <li><a href="#"><img src="images/main/gnb06_04_off.gif"  alt="공정거래" /></a></li>
            <li><a href="http://www.lgdisplay.com/lgdhp/app/com/home.dev" target="_blank"><img src="images/main/gnb06_05_off.gif"  alt="지속가능경영보고서" /></a></li>
          </ul>
        </li>
      </ul>
     </div>
    </div>
    
    <div id="container">
      <div id="mainVisual">
          
          <ul class="script">
            <li class="visual01"><a href="#"><img id="visual_img" class="img01" src="images/main/visual_01.jpg" alt="" /></a></li>
        
          </ul> 
       
        </div>       
        <ul class="control">
            <li id="stop_btn"><a href="#"><img src="images/main/btn_prev.gif" alt="이벤트멈추기"  /></a></li>
            <li id="start_btn"><a href="#"><img src="images/main/btn_next.gif" alt="이벤트실행" /></a></li>
          </ul>
      </div>    
     
           
  </div>
 </body>
</html>








setInterval()
일정한 시간간격으로 특정 함수를 반복 실행

형식
setInterval(함수명, 시간간격)

시간간격: 밀리언세컨즈 (1초보다 1000배 작은 단위)
ex) 1000은 1초를 나타냄





<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>setInterval()</title>
    <style>
        
    </style>
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script>
        
        //  전역변수 num 선언
        var num;
        
        $(document).ready(function(){
            
            //  num에 값대입
            num = 0;
            
            //  setInterval()통해서, 1초단위로 임의함수 count 실행
            setInterval(count,1000);
            
        });
        
        
        //  임의함수 count 정의
        function count(){
            document.write(num + "<br>");
            
            num++;
        }
    </script>
</head>
<body>
</body>
</html>








setInterval 응용
일정시간마다 이미지 교체



<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>이미지자동변경</title>
    <style>
        body{
            font-size:9pt;      
        }       
        div{        
            margin:20px;
            margin-bottom:20px;
        }       
        div div{            
            font-size:20px; 
        }
    </style>
   
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script>
        
        var $visualImg;
        var num = 1;
                
        $(document).ready(function(){
            
            $visualImg = $("#img1");
            
            setInterval( onChangeImg ,1000);
        });
        
        function onChangeImg(){
            
            if(num < 10){
                num++
            }else{
                num=1;
            }
            
            $visualImg.attr("src", "images/img" + num +".jpg");
            
        }
    </script>
</head>
<body>
    <div>
        <div id="panel">
            <img id="img1" src="images/img1.jpg" alt="이미지">
        </div>
    </div>
</body>
</html>









Math.random(), parseInt()

Math.random(): 0부터 1미만의 소수 출력
parseInt(): 버림. 정수만 출력





<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>랜덤숫자출력(칼라)</title>
    <style>
                
    </style>
    <script  type="text/javascript" src="../libs/jquery-1.7.1.min.js"></script>
    <script>        
        var count;
        
        $(document).ready(function(){
            
            setInterval(onCount, 500);
        });
        
        function onCount(){
            
            //  Math.random(): 0부터 1아래 소수 출력
            //  parseInt(): 버림. 정수만 출력
            count = parseInt(Math.random() * 10 );
            
            document.write(count + "<br>");
        }
    </script>
</head>
<body>
    <div>       
        <div id="panel">
            
           
           
            
        </div>
    </div>      
</body>
</html>







+ Recent posts