bootstrap提供了一個carousel(旋轉木馬)元件,我們稱之為輪播。它可以輪播圖片和文字,常常用來展示網站的關鍵資訊。如下就是一個carousel:
[carousel demo](https://jsfiddle.net/1000copy/29r1fg71/)
程式碼如下:
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<!-- Carousel indicators -->
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<!-- Wrapper for carousel items -->
<div class="carousel-inner">
<div class="item active">
<img src="http://placehold.it/1000x150" alt="First Slide">
</div>
<div class="item">
<img src="http://placehold.it/1000x150" alt="Second Slide">
</div>
<div class="item">
<img src="http://placehold.it/1000x150" alt="Third Slide">
</div>
</div>
<!-- Carousel controls -->
<a class="carousel-control left" href="#myCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
解釋
任何一個輪播,都需要通過class來標識,使用carousel符號指明它的型別。標識選用的標籤是div。這是一個慣例而已,實際上,其他的塊標籤可以Ok的,比如nav、section。
值得一說的是類slide,它在css中沒有定義,而是在carousel.js內使用的,這個js檔案發現如果一個carousel有slide的類的話,就是平滑的播放,否則就是直接用下一個輪播項直接的生硬的替代前一個輪播專案。
carousel元件可以由輪播指示器、輪播控制元件、輪播內容構成。
-輪播 carousel
----輪播指示器 indicators
-------輪播指示器 indicator
----輪播內容 inner
-------輪播專案 item
----輪播控制元件 controls
-------輪播控制元件 control
輪播內容需要使用carousel-inner在class內標識。在其內可以放置一組內容,內容常常標題和圖片。
輪播指示器使用carousel-indicators在class屬性內標識。輪播內容有幾組,指示器就可以有幾個li元素。li元素上的兩個屬性,data-target此指示器相關的carousel。就是說,如果一個頁面有多個carousel,那麼這個data-target就可以區別它們。屬性data-slide-to指明當前的li指向輪播內容的按次序的畫面。數字0表示第一幅,數字1表示第二幅,以此類推。
稍微停頓的看看,有趣的發現就是這段程式碼中有不少data-字首的屬性,比如data-target、data-slide-to。只是一個慣例,有jquery引入的。jquery有提供一個.data()的函式,可以使用
$.data("xxx")
訪問
<some-element data-xxx="1">
中的data-xxx的值。這個慣例非常方便,並且在標籤使用上具備一致性,因此被廣泛採用。如今html也提供了類似的api訪問它。不僅僅是carousel控制元件,還有很多控制元件也會這樣使用的。看到這些屬性就可以知道該控制元件不僅僅依賴bootstrap.css,也還需要依賴bootstrap.js ,jquery.js 。記得新增連結到html內:
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css
https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js
https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js
輪播內容由carousel-inner在class屬性內標識。在其標籤內嵌的標籤中為輪播條目,由item類標識。其中的當前顯示項使用active標識。
標識、標識、標識。我提到了那麼多的標識,是因為bootstrap就是一個宣告式的框架,只要宣告就好,背後的魔術是可以不需要開發者關心的,所謂的宣告,其中一大部分就是做大量的標識。
輪播內容中的img,指向的是http://placehold.it/的內容,這是一個可以自動生成指定大小圖片的網站,用來演示非常方便。此url後跟著的引數就是寬度X高度。
最後就是控制元件,用來操作輪播的翻頁,翻頁鍵需要carousel-control標識,並且可以選擇left和right的類加入,用於標識向左翻頁還是向右翻頁。
參考:
http://ejohn.org/blog/html-5-data-attributes/
https://placehold.it/
http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/bootstrap-carousel.php
關於
作者:劉傳君
建立過產品,創過業。不好動,讀書機器。
可以通過 1000copy#gmail.com 聯絡到我
出品
http小書 http://www.ituring.com.cn/boo…
Git小書 http://www.ituring.com.cn/boo…