2016-07-21 1 views
1

클릭 할 수 있고 아래에있는 코드와 비슷한 기능을하는 페이더 내에 표시 점을 구현하는 방법은 무엇입니까? I.E., 해당 도트를 클릭하면 해당 이미지에 바인딩됩니다. 나는 도트를 만들었고 클릭 가능을위한 버튼으로 변환 될 수 있지만 함수를 만드는 방법과 그 함수는 무엇입니까?jQuery fader dots interactivity 함수

function cycleImages() { 
 
    var $active = $('.image.active'); //get the active tab 
 
    var $next = $active.next().length > 0 ? $active.next() : $('.image:first'); 
 
    //check next length if not present just get the first .image div 
 
    //fade out the top image and remove active class from it in callback 
 
    $active.animate({ 
 
    opacity: '0' 
 
    }, 400, function() { 
 
    $active.removeClass('active') 
 
    $next.animate({ 
 
     opacity: '1' 
 
    }, 400, function() { 
 
     $next.addClass('active'); 
 
    }) 
 
    }); 
 
} 
 

 
// run every 5s 
 
setInterval(cycleImages, 5000);
div.image div.caption { 
 
    display: visible; 
 
    position: absolute; 
 
    overflow: hidden; 
 
    z-index: 20; 
 
    color: white; 
 
    background-color: rgba(0,0,0,0.35); 
 
    height: 20%; 
 
    width: 100%; 
 
    bottom: 0; 
 
} 
 

 
.fader { 
 
    border-radius: 1em; 
 
    height: 25vw; 
 
    width: 74vw; 
 
    max-height: 100%; 
 
    min-height: 10vw; 
 
    margin: 0 auto; 
 
    border-left: 1.5em solid #aa917d; 
 
    border-right: 1.5em solid #aa917d; 
 
    position: relative; 
 
    overflow: hidden; 
 
} 
 
.fader div.image img { 
 
    display: block; 
 
    width: 100%; 
 
    margin: 0 auto; 
 
    z-index: 1; 
 
    position: absolute; 
 
} 
 
div.image img { 
 
    z-index: 5; 
 
} 
 

 
div.image{ 
 
    opacity:0; 
 
    transition:all 1s ease-in; 
 
} 
 

 
div.image.active{ 
 
    opacity:1; 
 
} 
 

 
div.image:not(.active){ 
 
     display:none; 
 
} 
 

 
.dots { 
 
    float: right; 
 
    background-color: rgba(65,45,30,0.5); 
 
    border: none; 
 
    border-radius: .85vw; 
 
    display: inline-block; 
 
    height: .85vw; 
 
    width: .85vw; 
 
    margin: .2em .2em .2em .2em; 
 
} 
 
.dots.active { 
 
    background-color: #aa917d; 
 
} 
 

 
.dot-container { 
 
    width: 20%; 
 
    float: right; 
 
    margin-right: .5em 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="fader"> 
 
    <div class="image active"> 
 
    <img class="" src="https://images.contentful.com/256tjdsmm689/2T0QeKcvR6MSsckuKoYIwS/b57d12107fc5eb635e294ed1c76cbbac/feature-gettyimages.jpg" alt="" style="height: 100%; width:auto; object-fit: contain"> 
 
    <div class="caption"> 
 
     <span class="image-info">Lorem ipsum dolor sit amet</span> 
 
     <div class="dot-container"> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots active"></span> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="image"> 
 
    <img class="" src="http://www.livemint.com/rf/Image-621x414/LiveMint/Period2/2016/04/09/Photos/[email protected]" alt="" style="height: 100%; width:auto; object-fit: contain"> 
 
    <div class="caption"> 
 
     <span class="image-info">Lorem ipsum dolor sit amet</span> 
 
     <div class="dot-container"> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots active"></span> 
 
     <span class="dots"></span> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="image"> 
 
    <img class="" src="http://i.dailymail.co.uk/i/pix/2016/03/22/13/32738CEB00000578-3504412-image-a-4_1458654503277.jpg" alt="" style="height: 100%; width:auto; object-fit: contain"> 
 
    <div class="caption"> 
 
     <span class="image-info">Lorem ipsum dolor sit amet</span> 
 
     <div class="dot-container"> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots active"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="image"> 
 
    <img lass="" src="http://static.bigstockphoto.com/images/homepage/2016_bigstock_video.jpg" alt="" style="height: 100%; width:auto; object-fit: contain"> 
 
    <div class="caption"> 
 
     <span class="image-info">Lorem ipsum dolor sit amet</span> 
 
     <div class="dot-container"> 
 
     <span class="dots"></span> 
 
     <span class="dots active"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    <div class="image"> 
 
    <img class="" src="http://media.tinmoitruong.vn/public/media/media/picture/03/kh4.jpg" alt="" style="height: 100%; width:auto; object-fit: contain"> 
 
    <div class="caption"> 
 
     <span class="image-info">Lorem ipsum dolor sit amet</span> 
 
     <div class="dot-container"> 
 
     <span class="dots active"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     <span class="dots"></span> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

답변

0

당신은 점으로 슬라이드를 탐색 할 수있는 몇 가지를 수행해야합니다 : 각 속성을 적용, 도트 요소를 통해

  • 루프 도트 (숫자, 0 또는 1에서 시작) 및 각 도트에 대해 하나씩 증가합니다.
  • 각 이미지에 속성을 적용하고 (숫자는 0 또는 1에서 시작) 각 점에 대해 하나씩 증가시킵니다. (점처럼)
  • 클릭 이벤트 처리기를 점에 추가하면 해당 점의 숫자 속성을 가져오고 같은 숫자 속성을 사용하여 이미지를 표시합니다.
  • 각 슬라이드의 점에 대한 마크 업을 제거하고 대신에 나는 기존의 회전 목마 보는 것이 좋습니다 것

모든 슬라이드에 점 한 세트 만 (이것이 당신의 HTML/CSS의 조정이 필요합니다)가 그 이 기능을 통해 코드를 더 잘 이해할 수 있습니다. 이 blog post from Barrel titled "Building a Responsive jQuery Carousel Plugin from Scratch.을 살펴보십시오. "찾고있는 기능이 있습니다.