2015-10-07 115 views
0

在我把HTML和CSS之前,我有2個問題,請保持我的,我幾乎是一個完整的業餘的HTML和CSS,並不知道JavaScript的意思。Javascript內容滑塊

問題:

  • 我的第一個問題是,內容代爾,犯規滑動遠遠不夠,接下來的內容,而是點擊該按鈕時,只有一半帶來了內容上(你會看到什麼我的意思是當你將html和css粘貼到頁面中時)。

  • 我的第二個問題是按鈕的意思是水平的海誓山盟,我也想添加更多的未來

所以,如果有人能告訴我該怎麼做,在闡述與JavaScript的問題,這將是偉大的!

這裏的工作演示的jsfiddle請退房

Working code

感謝你提前.. !!

// just querying the DOM...like a boss! 
 
var links = document.querySelectorAll(".itemLinks"); 
 
var wrapper = document.querySelector("#wrapper"); 
 

 
// the activeLink provides a pointer to the currently displayed item 
 
var activeLink = 0; 
 

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

 
    // identify the item for the activeLink 
 
    link.itemID = i; 
 
} 
 

 
// set first item as active 
 
links[activeLink].classList.add("active"); 
 

 
function setClickedItem(e) { 
 
    removeActiveLinks(); 
 

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

 
    changePosition(clickedLink); 
 
} 
 

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

 
// Handle changing the slider position as well as ensure 
 
// the correct link is highlighted as being active 
 
function changePosition(link) { 
 
    link.classList.add("active"); 
 

 
    var position = link.getAttribute("data-pos"); 
 
    wrapper.style.left = position; 
 
}
#wrapper { 
 
    width: 5000px; 
 
    position: relative; 
 
    left: 0px; 
 
    transition: left .5s ease-in-out; 
 
} 
 

 
.content { 
 
    float: left; 
 
    width: 1250px; 
 
    height: 600px; 
 
    white-space: normal; 
 
    background-repeat: no-repeat; 
 
} 
 

 
#itemOne { 
 
    background-color: #ADFF2F; 
 
    background-image: url("http://www.kirupa.com/images/blueSquare.png"); 
 
} 
 
#itemTwo { 
 
    background-color: #FF7F50; 
 
    background-image: url("http://www.kirupa.com/images/yellowSquare.png"); 
 
} 
 
#itemThree { 
 
    background-color: #1E90FF; 
 
    background-image: url("http://www.kirupa.com/images/pinkSquare.png"); 
 
} 
 
#itemFour { 
 
    background-color: #DC143C; 
 
    background-image: url("http://www.kirupa.com/images/graySquare.png"); 
 
} 
 

 
#contentContainer { 
 
    width: 98%; 
 
    height: 600px; 
 
    border: 5px black solid; 
 
    overflow: hidden; 
 
    margin-left: 1%; 
 
    margin-right: 1%; 
 
} 
 
#navLinks { 
 
    text-align: center; 
 
    width: 22.5%; 
 
} 
 
    #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: #CCCCCC; 
 
      padding: 100px; 
 
      border-radius: 10%; 
 
      border: white 5px solid; 
 
     } 
 
      #navLinks ul li:hover { 
 
       background-color: #FFFF00; 
 
      } 
 
      #navLinks ul li.active { 
 
       background-color: #333333; 
 
       color: #FFFFFF; 
 
       outline-width: 7px; 
 
      } 
 
       #navLinks ul li.active:hover { 
 
        background-color: #484848; 
 
        color: #FFFFFF; 
 
       } 
 
#navLinks ul li.active { 
 
    background-color: #333333; 
 
    color: #FFFFFF; 
 
    outline-width: 7px; 
 
} 
 
#navLinks ul li.active:hover { 
 
    background-color: #484848; 
 
    color: #FFFFFF; 
 
}
<body bgcolor='black'> 
 

 

 
<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="-550px"></li> 
 
     <li class="itemLinks" data-pos="-1100px"></li> 
 
     <li class="itemLinks" data-pos="-1650px"></li> 
 
    </ul> 
 
</div> 
 
    </body>

+0

你可以把它放在jsfiddle並提供一個鏈接? –

+0

你在這件事上使用了一些驚人的巨大div!問題是你的尺寸有嚴格的規定,而你使用的偏移量不符合滑塊中div的寬度。這裏是一個小提琴 - https://jsfiddle.net/9gpyL6o1/ – Matt

+0

嘿大家謝謝你的幫助!但現在我只是想知道邊緣問題是什麼,我有6個導航鏈接,但它們似乎停止在頁面右側15%左右。同樣對於內容滑塊,將使用什麼代碼來居中呢? – Connor

回答

2

主要領域進行更新; 1)你的「#contentContainer」。這基本上是你的滑塊的窗口。高度和寬度需要更新以匹配滑塊項目。 2)你的列表項目的「數據位置」值。這應該與它們的寬度*相同,它們的索引從0開始並且是負數。 3)列表容器太窄。使其與#contentContainer一樣寬。

CSS Changes: 
#contentContainer { 
    width: 1250px; 
    height: 600px; 
} 
#navLinks { 
    width:1250px; 
} 
#navLinks ul li { 
    width:80px; 
} 

HTML change: 
<li class="itemLinks" data-pos="0px"></li> 
<li class="itemLinks" data-pos="-1250px"></li> 
<li class="itemLinks" data-pos="-2500px"></li> 
<li class="itemLinks" data-pos="-3750px"></li> 

https://jsfiddle.net/partypete25/9gpyL6o1/7/embedded/result/

0

我認爲張貼在你的問題底部的CSS是main.css文件的內容。正如在評論中指出的那樣,嘗試改變div的大小。特別是#wrapper,這是由它指定使用塔散列標籤(#)是ID

#wrapper { 
    width: 5000px; 
    position: relative; 
    left: 0px; 
    transition: left .5s ease-in-out; 
} 

而且在這裏的JavaScript引用:

var wrapper = document.querySelector("#wrapper"); 

它分配給變量wrapper。它是5000像素寬。我相信,典型的桌面網頁屏幕寬度約爲1200 - 1700像素,供參考。這是關於您想要的尺寸.content,參考class使用.和什麼保持每個顯示「幻燈片」 - 請記住,在手機和其他移動設備上正確顯示的響應網站需要有變化大小使用@media查詢

所以我想補充可見CSS邊框適用(用於開發和稍後刪除)和周圍的數值變量(data-pos#wrapper.container大小)更改爲找到最佳的解決方案。如上所述,無論您是否需要公開分享,jsfiddle都是一個很好的資源。

對於navlinks,應顯示成一排,嘗試保存列表(<ul>)的股利如下CSS:

​​

border:1px solid white;將幫助你看到那裏的DIV是。然後在#navLinks ul li中嘗試使用較小的padding大小,以確保頁面上有空間可以水平顯示。

我相信最後一步是調整<li class="itemLinks" data-pos="0px"></li>,其中data-pos屬性只保存javascript的信息,用於changePosition函數,這是javascript的最後幾行。

eloquentjavascript.net是一個美妙的,免費的來源,學習所有這一切。

0
<!DOCTYPE html> 
<html> 

<head> 
<title>Dinosaurs 4 Kids!</title> 

<style> 
#wrapper { 
    width: 98%; 
    position: relative; 
    left: 0px; 
    transition: left .5s ease-in-out; 
} 

.content { 
    float: left; 
    width: 100%; 
    height: 600px; 
    white-space: normal; 
    background-repeat: no-repeat; 
    background-position: center; 
} 

#itemOne { 
    background-color: #ADFF2F; 
    background-image: url("http://www.kirupa.com/images/blueSquare.png"); 
} 
#itemTwo { 
    background-color: #FF7F50; 
    background-image: url("http://www.kirupa.com/images/yellowSquare.png"); 
} 
#itemThree { 
    background-color: #1E90FF; 
    background-image: url("http://www.kirupa.com/images/pinkSquare.png"); 
} 
#itemFour { 
    background-color: #DC143C; 
    background-image: url("http://www.kirupa.com/images/graySquare.png"); 
} 

#contentContainer { 
    width: 98%; 
    height: 600px; 
    border: 5px black solid; 
    overflow: hidden; 
    margin-left: 1%; 
    margin-right: 1%; 
} 
#navLinks { 
    text-align: center; 
} 
    #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: #CCCCCC; 
      padding: 20px; 
      border-radius: 10%; 
      border: white 5px solid; 
     } 
      #navLinks ul li:hover { 
       background-color: #FFFF00; 
      } 
      #navLinks ul li.active { 
       background-color: #333333; 
       color: #FFFFFF; 
       outline-width: 7px; 
      } 
       #navLinks ul li.active:hover { 
        background-color: #484848; 
        color: #FFFFFF; 
       } 
#navLinks ul li.active { 
    background-color: #333333; 
    color: #FFFFFF; 
    outline-width: 7px; 
} 
#navLinks ul li.active:hover { 
    background-color: #484848; 
    color: #FFFFFF; 
} 
</style> 
</head> 

<body bgcolor='black'> 


<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="-550px"></li> 
     <li class="itemLinks" data-pos="-1100px"></li> 
     <li class="itemLinks" data-pos="-1650px"></li> 
    </ul> 
</div> 



<script> 
// just querying the DOM...like a boss! 
var links = document.querySelectorAll(".itemLinks"); 
var wrapper = document.querySelector("#wrapper"); 

// the activeLink provides a pointer to the currently displayed item 
var activeLink = 0; 

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

    // identify the item for the activeLink 
    link.itemID = i; 
} 

// set first item as active 
links[activeLink].classList.add("active"); 

function setClickedItem(e) { 
    removeActiveLinks(); 

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

    changePosition(clickedLink); 
} 

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

// Handle changing the slider position as well as ensure 
// the correct link is highlighted as being active 
function changePosition(link) { 
    link.classList.add("active"); 

    var position = link.getAttribute("data-pos"); 
    wrapper.style.left = position; 
} 
</script> 
</body> 
</html>