이미지 갤러리
화살표 버튼을 클릭하면, 그림모임페이지가 이동.
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>


+ Recent posts