2015-06-03 39 views
0

當前在底部有圓圈可用於在幻燈片之間導航。我想添加下一個和上一個箭頭到用戶可以點擊的方向前進或後退通過幻燈片。我試圖在該內容滑塊上添加上一個和下一個箭頭

CSS:

#wrapper { 
    width: 2000px; 
    position: relative; 
    left: 0px; 
    transition: left 0.6s ease-in-out; 
} 
.content { 
    float: left; 
    width: 500px; 
    height: 300px; 
    white-space: normal; 
    background-repeat: no-repeat; 
} 
#contentContainer { 
    width: 500px; 
    height: 300px; 
    overflow: hidden; 
} 
#navLinks { 
    margin-top:-61px; 
    position:relative; 
    text-align: center; 
    width: 500px; 
} 
    #navLinks ul { 
     margin: 0px; 
     padding: 0px; 
     display: inline-block; 
     margin-top: 6px; 
    } 
     #navLinks ul li { 
      float: left; 
      text-align: center; 
      margin: 10px; 
      list-style: none; 
      cursor: pointer; 
      background-color: rgba(204,204,204,0.8); 
      padding: 10px; 
      border-radius: 50%; 
     } 
      #navLinks ul li:hover { 
       background-color: #FFF; 
      } 
      #navLinks ul li.active { 
       background-color: rgba(156,227,100,0.9); 
       color: #FFFFFF; 

      } 
       #navLinks ul li.active:hover { 
        background-color: red; 
        color:#FFF; 

       } 

#itemOne { 
    background-image: url("http://telcospace.com/wp-content/uploads/2013/02/android_eating_apple_1000x500_by_crus23-d38bpx9-640x300.jpg"); 
} 
#itemTwo { 
    background-image: url("http://www.thetimesofhealth.com/wp-content/uploads/2014/08/Angry-Baby-Face-500x300.jpg"); 
} 
#itemThree { 
    background-image: url("http://animalsugar.com/wp-content/uploads/2014/10/baby-cat-hd-wallpapers-baby-cat-widescreen.jpg"); 
} 
#itemFour { 
    background-image: url("http://cuteimages.net/data/2015/5/the-first-puppy-to-leave-me-speechless-name-cuteimages.net.png"); 
} 

HTML:

<div id="contentContainer"> 
    <div id="wrapper"> 
     <div id="itemOne" class="content"> 

     </div> 
     <div id="itemTwo" class="content"> 

     </div> 
     <div id="itemThree" class="content"> 

     </div> 
     <div id="itemFour" class="content"> 

     </div> 
    </div> 
</div> 
<div id="navLinks"> 
    <ul> 
     <li class="itemLinks" data-pos="0px"></li> 
     <li class="itemLinks" data-pos="-500px"></li> 
     <li class="itemLinks" data-pos="-1000px"></li> 
     <li class="itemLinks" data-pos="-1500px"></li> 
    </ul> 
</div> 

的JavaScript:

var links = document.querySelectorAll(".itemLinks"); 
var wrapper = document.querySelector("#wrapper"); 

var activeLink = 0; 

for (var i = 0; i < links.length; i++) { 
    var link = links[i]; 
    link.addEventListener('click', setClickedItem, false); 

    link.itemID = i; 
} 

links[activeLink].classList.add("active"); 

function setClickedItem(e) { 
    removeActiveLinks(); 
    resetTimer(); 

    var clickedLink = e.target; 
    activeLink = clickedLink.itemID; 

    changePosition(clickedLink); 
} 

function removeActiveLinks() { 
    for (var i = 0; i < links.length; i++) { 
     links[i].classList.remove("active"); 
    } 
} 

function changePosition(link) { 
    link.classList.add("active"); 

    var position = link.getAttribute("data-pos"); 
    wrapper.style.left = position; 
} 

var timeoutID; 

function startTimer() { 
    timeoutID = window.setInterval(goToNextItem, 2963); 
} 
startTimer(); 

function resetTimer() { 
    window.clearInterval(timeoutID); 
    startTimer(); 
} 

function goToNextItem() { 
    removeActiveLinks(); 

    if (activeLink < links.length - 1) { 
     activeLink++; 
    } else { 
     activeLink = 0; 
    } 

    var newLink = links[activeLink]; 
    changePosition(newLink); 
} 

這裏是的jsfiddle http://jsfiddle.net/stormbloom/2d0a1215/

我想了解這個個人經驗,否則我只會使用像WowSlider這樣的插件。如果通過從頭開始構建新的滑塊來實現這一點更容易,那麼任何指向資源的鏈接都可以解釋如何完成此操作。

+0

你想帶箭頭的定製滑蓋的? –

回答

0

這是一個帶箭頭的方法,只需調整設計即可。

在HTML中,我添加了相應的箭頭,並在JS中添加了EventListeners和函數goToPreviousItem()

var links = document.querySelectorAll(".itemLinks"); 
 
var wrapper = document.querySelector("#wrapper"); 
 

 
document.querySelector('#previous').addEventListener('click', goToPreviousItem, false); 
 
document.querySelector('#next').addEventListener('click', goToNextItem, false); 
 
    
 
var activeLink = 0; 
 
    
 
for (var i = 0; i < links.length; i++) { 
 
    var link = links[i]; 
 
    link.addEventListener('click', setClickedItem, false); 
 
    
 
    link.itemID = i; 
 
} 
 
    
 
links[activeLink].classList.add("active"); 
 
    
 
function setClickedItem(e) { 
 
    removeActiveLinks(); 
 
\t resetTimer(); 
 
    
 
    var clickedLink = e.target; 
 
    activeLink = clickedLink.itemID; 
 
    
 
    changePosition(clickedLink); 
 
} 
 
    
 
function removeActiveLinks() { 
 
    for (var i = 0; i < links.length; i++) { 
 
     links[i].classList.remove("active"); 
 
    } 
 
} 
 
    
 
function changePosition(link) { 
 
    link.classList.add("active"); 
 
    
 
    var position = link.getAttribute("data-pos"); 
 
    wrapper.style.left = position; 
 
} 
 

 
var timeoutID; 
 
    
 
function startTimer() { 
 
    timeoutID = window.setInterval(goToNextItem, 2963); 
 
} 
 
//startTimer(); 
 
    
 
function resetTimer() { 
 
    window.clearInterval(timeoutID); 
 
    startTimer(); 
 
} 
 
    
 
function goToNextItem() { 
 
    removeActiveLinks(); 
 
    
 
    if (activeLink < links.length - 1) { 
 
     activeLink++; 
 
    } else { 
 
     activeLink = 0; 
 
    } 
 
    
 
    var newLink = links[activeLink]; 
 
    changePosition(newLink); 
 
} 
 

 
function goToPreviousItem() { 
 
    removeActiveLinks(); 
 
    
 
    if(activeLink == 0) { 
 
     activeLink = links.length - 1; 
 
    } else { 
 
     activeLink--; 
 
    } 
 
    
 
    var newLink = links[activeLink]; 
 
    changePosition(newLink); 
 
}
#wrapper { 
 
    width: 2000px; 
 
    position: relative; 
 
    left: 0px; 
 
\t transition: left 0.6s ease-in-out; 
 
} 
 
.content { 
 
    float: left; 
 
    width: 500px; 
 
    height: 300px; 
 
    white-space: normal; 
 
    background-repeat: no-repeat; 
 
} 
 
#outsideContainer { 
 
    width: 600px; 
 
} 
 
#previous { 
 
    width: 50px; 
 
    display: inline-block; 
 
    text-align: center; 
 
    float: left; 
 
    margin-top: 150px; 
 
} 
 
#next { 
 
    width: 50px; 
 
    display: inline-block; 
 
    text-align: center; 
 
    float: right; 
 
    margin-top: 150px; 
 
} 
 
#contentContainer { 
 
    width: 500px; 
 
    height: 300px; 
 
    overflow: hidden; 
 
    display: inline-block; 
 
} 
 
#navLinks { 
 
\t margin-top:-61px; 
 
\t position:relative; 
 
    text-align: center; 
 
    width: 600px; 
 
} 
 
    #navLinks ul { 
 
     margin: 0px; 
 
     padding: 0px; 
 
     display: inline-block; 
 
     margin-top: 6px; 
 
    } 
 
     #navLinks ul li { 
 
      float: left; 
 
      text-align: center; 
 
      margin: 10px; 
 
      list-style: none; 
 
      cursor: pointer; 
 
      background-color: rgba(204,204,204,0.8); 
 
      padding: 10px; 
 
      border-radius: 50%; 
 
      border:rgba(255,255,255,0.9) 1px solid; 
 
\t \t \t box-shadow: 0 0 4px #fff; 
 
     } 
 
      #navLinks ul li:hover { 
 
       background-color: #FFF; 
 
\t \t \t \t box-shadow: 0 0 10px #fff; 
 
\t \t \t \t border:rgba(255,255,255,0.6) 1px solid; 
 
      } 
 
      #navLinks ul li.active { 
 
       background-color: rgba(156,227,100,0.9); 
 
       color: #FFFFFF; 
 
       outline-width: 1px; 
 
\t \t \t \t 
 
      } 
 
       #navLinks ul li.active:hover { 
 
        background-color: rgba(255,255,255,0.7); 
 
        color: #FFFFFF; 
 
\t \t \t \t \t box-shadow: 0 0 10px #fff; 
 
\t \t \t \t \t border:rgba(255,255,255,0.9) 1px solid; 
 
       } 
 

 
#itemOne { 
 
    background-color: #000; 
 
    background-image: url("http://telcospace.com/wp-content/uploads/2013/02/android_eating_apple_1000x500_by_crus23-d38bpx9-640x300.jpg"); 
 
} 
 
#itemTwo { 
 
    background-color: #fff; 
 
    background-image: url("http://www.thetimesofhealth.com/wp-content/uploads/2014/08/Angry-Baby-Face-500x300.jpg"); 
 
} 
 
#itemThree { 
 
    background-color: #fff; 
 
    background-image: url("http://animalsugar.com/wp-content/uploads/2014/10/baby-cat-hd-wallpapers-baby-cat-widescreen.jpg"); 
 
} 
 
#itemFour { 
 
    background-color: #fff; 
 
    background-image: url("http://images5.fanpop.com/image/photos/28100000/Katy-Perry-gifs-katy-perry-28147211-500-300.gif"); 
 
}
<div id="outsideContainer"> 
 
    <div id="previous"><<</div> 
 
    <div id="contentContainer"> 
 
     <div id="wrapper"> 
 
      <div id="itemOne" class="content"></div> 
 
      <div id="itemTwo" class="content"></div> 
 
      <div id="itemThree" class="content"></div> 
 
      <div id="itemFour" class="content"></div> 
 
     </div> 
 
    </div> 
 
    <div id="next">>></div> 
 
</div> 
 

 
<div id="navLinks"> 
 
    <ul> 
 
     <li class="itemLinks" data-pos="0px"></li> 
 
     <li class="itemLinks" data-pos="-500px"></li> 
 
     <li class="itemLinks" data-pos="-1000px"></li> 
 
     <li class="itemLinks" data-pos="-1500px"></li> 
 
    </ul> 
 
</div>

+0

感謝喬丹的甜蜜和簡單的答案! – Stormy

相關問題