jQuery main slide

2021. 12. 13. 12:36Study/jQuery

 

 

CSS

@charset "utf-8";
/* CSS Document */

*{margin:0; padding:0;}
ul, li{list-style:none;}
img{border:0; vertical-align:top;}

.main{position:relative; width:1000px; height:420px; overflow: hidden}
.main .gallery{position:relative; left:0; top:0; width:5000px; height:380px; overflow:hidden;}
.main .gallery ul li{float:left;}

.main .gallery_text{position: absolute; top: 150px; width: 100%; }
.main .gallery_text li{text-align:center; font-size: 50px; color: #fff; background: rgba(0,0,0,.7); padding: 20px 0; display: none;}

.main .dock{position:absolute; left:450px; top:350px; width:500px;}
.main .dock .mbutton{float:left; display:block; width:16px; height:16px;  margin-right:15px; cursor:pointer; background: #00f; border-radius:8px; transition: all .5s}
.main .dock .ps{float:left; display:block; width:25px; height:25px;  margin-right:15px; margin-top: -5px; cursor:pointer; background:url(../images/stop.png)}

 

 

 

JS

// JavaScript Document

$(document).ready(function() {
    var timeonoff; //자동기능 구현
    var imageCount = 5;  //이미지 개수 *** 
    var cnt = 1;  //이미지 순서 1 2 3 4 5 4 3 2 1 2 3 4 5 ...
    var direct = 1;  //1씩 증가(+1)/감소(-1)
    var position = 0; //겔러리 무비의 left값 0 -1000 -2000 -3000 -4000
    var onoff = true; // true=>타이머 동작중 , false=>동작하지 않을때
    
    // 초기셋팅
    $('.btn1').css('background','#f00');
    $('.btn1').css('width','30');
    $('.gallery_text li:eq(0)').fadeIn('slow');  //첫번째 텍스트만 보여짐

    // 자동 슬라이드
    function moveg(){
        cnt += direct;  //카운트가 1 2 3 4 5 4 3 2 1 2 3 4 5 ......
	    
        position = -(cnt-1)*1000; // 현재 cnt에 해당하는 left값

        $('.gallery_text li').hide(); //모든 텍스트를 안보이게...
        $('.gallery_text li:eq('+ (cnt-1) +')').fadeIn('slow'); //해당 텍스트만 보여라
       
        // 버튼 모두 off
        $('.mbutton').css('background','#00f');
        $('.mbutton').css('width','16');
        
        // 현재 버튼 on
        $('.btn'+cnt).css('background','#f00');
        $('.btn'+cnt).css('width','30');
        
        $('.gallery').animate({left:position}, 'slow'); // 이미지 left값

        if(cnt == imageCount){ direct = -1; }
        if(cnt == 1){ direct = 1; }
    }
    timeonoff= setInterval( moveg , 4000); //4초마다 자동기능


    // 버튼 클릭 시
    $('.mbutton').click(function(event){  //각각의 버튼을 클릭한다면...
        var $target=$(event.target); //$target == this =>실제 클릭한 버튼
        clearInterval(timeonoff); // 타이머 중지
       
        // 버튼 모두 off
        $('.mbutton').css('background','#00f');
        $('.mbutton').css('width','16');

        if($target.is('.btn1')){  //첫번째 버튼을 클릭했다면..
            cnt = 1;
            direct = 1;
        }else if($target.is('.btn2')){ //두번째 버튼을 클릭했다면...
            cnt = 2;
        }else if($target.is('.btn3')){ //세번째 버튼을 클릭했다면...
            cnt = 3;
        }else if($target.is('.btn4')){  //네번째 버튼을 클릭했다면...
            cnt = 4;
        }else if($target.is('.btn5')){  //다섯번째 버튼을 클릭했다면...
            cnt = 5;
            direct = -1;
        }

        position = -(cnt-1)*1000; // 현재 cnt에 해당하는 left값
        $('.gallery').animate({left:position}, 'slow');

        $('.gallery_text li').hide(); // 텍스트 모두 off
        $('.gallery_text li:eq('+ (cnt-1) +')').fadeIn('slow'); // 현재 텍스트 on
    
        $('.btn'+cnt).css('background','#f00'); // 현재 버튼on
        $('.btn'+cnt).css('width','30');
    
        timeonoff= setInterval( moveg , 4000);  //타이머의 재 동작
    
        if(onoff==false){
            onoff=true;
            $('.ps').css('background','url(images/stop.png)');
        }
    });
    
    //stop/play 버튼 클릭시 타이머 동작/중지
    $('.ps').click(function(){
        if(onoff==true){
            clearInterval(timeonoff);   // stop버튼 클릭시
            $(this).css('background','url(images/play.png)');
            onoff = false;
        }else{
            timeonoff= setInterval( moveg , 4000); //play버튼 클릭시
            $(this).css('background','url(images/stop.png)');
            onoff = true;
        }
    });

});

 

 

 

HTML

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>main_slide-ps3</title>
    <link rel="stylesheet" href="css/layout.css">
    <script src="js/jquery-1.7.2.min.js"></script>
    <script src="js/move.js"></script>
</head>
<body>
    <div class="main">
        <div class="gallery">
            <ul>
                <li><a href="#"><img src="images/a1.jpg" alt=''></a></li>
                <li><a href="#"><img src="images/a2.jpg" alt=''></a></li>
                <li><a href="#"><img src="images/a3.jpg" alt=''></a></li>
                <li><a href="#"><img src="images/a4.jpg" alt=''></a></li>
                <li><a href="#"><img src="images/a5.jpg" alt=''></a></li>
            </ul>
        </div>

        <div class="gallery_text">
            <ul>
                <li>이미지 텍스트01</li>
                <li>이미지 텍스트02</li>
                <li>이미지 텍스트03</li>
                <li>이미지 텍스트04</li>
                <li>이미지 텍스트05</li>
            </ul>
        </div>

        <div class="dock">
            <span class="mbutton btn1"></span>
            <span class="mbutton btn2"></span>
            <span class="mbutton btn3"></span>
            <span class="mbutton btn4"></span>
            <span class="mbutton btn5"></span>
            <span class="ps"></span>
        </div>

    </div> 
</body>
</html>

 

 

 

'Study > jQuery' 카테고리의 다른 글

jQuery tabmenu1  (0) 2021.12.14
jQuery main slide fade ps lr  (0) 2021.12.13
jQuery main slide - fade  (0) 2021.12.13
jQuery slide scroll, quicktop, tab  (0) 2021.12.10
jQuery 네비게이션 Full drop-down + 스크롤 반응 배경  (0) 2021.12.09