在bs3.X中,提供了12種JavaScript插件,分別是:動畫過渡(Transition)、模態彈窗(Modal)、下拉菜單(Dropdown)、滾動偵測(Scrollspy)、選項卡(Tab)、提示 框(Tooltip)、彈出框(Popover)、警告框(Alert)、按鈕(Button)、摺疊(Collapse)、旋轉輪播(Carousel)、定位浮標(Affix)。css
因爲各類加班,身心疲憊...html
動畫過渡jquery
源文件:transition.jsweb
使用的動畫過渡效果所有使用了 CSS3的語法,因此IE六、IE七、IE8是不能用動畫過渡效果。ajax
默認帶過渡效果的bootstrap
源碼ide
js源碼動畫
function transitionEnd() { var el = document.createElement('bootstrap') var transEndEventNames = { WebkitTransition: 'webkitTransitionEnd', MozTransition: 'transitionend', OTransition: 'oTransitionEnd otransitionend', transition: 'transitionend' } for (var name in transEndEventNames) { if (el.style[name] !== undefined) { return { end: transEndEventNames[name] } } } return false // explicit for ie8 ( ._.) }
經過以上代碼判斷是否支持動畫過渡效果。網站
CSS源碼spa
.fade { opacity: 0; /*100%透明*/ -webkit-transition: opacity .15s linear; /*透明度,勻速變化0.15秒*/ transition: opacity .15s linear; } .fade.in { /*應用in樣式,表示所有打開*/ opacity: 1; /*徹底不透明*/ } .modal.fade .modal-dialog { -webkit-transition: -webkit-transform .3s ease-out; /*減速運行*/ -moz-transition: -moz-transform .3s ease-out; -o-transition: -o-transform .3s ease-out; transition: transform .3s ease-out; -webkit-transform: translate(0, -25%); /*向下移動25%的距離,從而產生向下的 動畫視覺*/ -ms-transform: translate(0, -25%); transform: translate(0, -25%); } .modal.in .modal-dialog { /*頁面完整顯示時,迴歸到原始位置*/ -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); }
模態彈窗
源文件:modal.js
模態彈窗(也叫popup,Bootstrap裏稱爲Modal)是絕大部分交互式網站都須要的一種功能,通常有如下幾種用法:
使用
彈窗組件使用了3層 div容器元素,其分別應用了modal、modal-dialog、modalcontent樣式。而後在真正的內容容器modal-content內包括了彈窗 的頭(header)、內容(body)、尾(footer)3個部分,分別應用了3個樣式:modal-header、modal-body、modal-footer。
使用data-target
<a href="#" class="btn btn-success" data-toggle="modal" data-target=".modal">啓動模態框</a> <div class="modal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header">Modal Title</div> <div class="modal-body"> This is body. </div> <div class="modal-footer"> <a href="#" class="btn btn-default" data-dismiss="modal">關閉</a> <a href="#" class="btn btn-success">保存</a> </div> </div> </div> </div>
js會控制在彈出modal以前,會加一個.modal-backdrop 用來設爲灰色背景。
下拉菜單
源文件:dropdown.js
通常下拉菜單都是在導航條(navbar)和選項卡(tab)上實現。
實現原理:
使用:
使用data-target
<a href="#" class="btn btn-default" data-toggle="dropdown" data-target="#d">啓動下拉框</a> <div class="dropdown" id="d"> <a href="#" class="btn btn-default" data-toggle="dropdown">啓動下拉框</a> <ul class="dropdown-menu"> <li><a>菜單1</a></li> <li><a>菜單2</a></li> </ul> </div>
滾動偵測
源文件:scrollspy.js
滾動偵測(ScrollSpy)插件是根據滾動的位置自動更新導航 條中相應的導航項
使用:
body上用data-spy
<body data-target="#selector" data-spy="scroll"> <div id="selector"> <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> <ul class="nav navbar-nav"> <li class="active"><a href="#fat">@fat</a></li> <li><a href="#mdo">@mdo</a></li> <li class="dropdown"> <a data-toggle="dropdown" class="dropdown-toggle" href="#">Dropdown<b class="caret"></b></a> <ul class="dropdown-menu"> <li class=""><a href="#one">one</a></li> <li class=""><a href="#two">two</a></li> <li class="divider"></li> <li class=""><a href="#three">three</a></li> </ul> </li> </ul> </nav> </div> <div style="overflow: auto"> <h4 id="fat">@fat</h4> <p>具體內容</p> <h4 id="mdo">@mdo</h4><p>具體內容</p> <h4 id="one">one</h4><p>具體內容</p> <h4 id="two">two</h4><p>具體內容</p> <h4 id="three">three</h4><p>具體內容</p> </div> <script src="Scripts/jquery-1.9.1.js"></script> <script src="Scripts/bootstrap.js"></script> </body>
注意:
子菜單雖然會高亮,但不會打開,爲了展現效果,須要手 動打開下拉菜單查看。
該插件所須要的導航條只能在擁有.nav樣式的ul/li元素上起 做用
選項卡
源文件:tab.js
就像咱們平時使用的Windows操做系統裏的選項卡設置同樣,單擊一個選項,下面就顯示對應的選項卡面板
使用:
<ul class="nav nav-tabs"> <li class="active"><a href="#home" data-toggle="tab">home</a> </li> <li><a href="#concact" data-toggle="tab">concact</a> </li> </ul> <div class="tab-content"> <div class="tab-pane active" id="home"> <h3>Home</h3> </div> <div class="tab-pane" id="concact"> <h3>concact</h3> </div> </div>
提示框
源文件:tooltip.js
鼠標移動到特定的元素上時,顯示相關的提示語。相似於abbr的title功能,不過效果更加漂亮實用。
使用
<a data-toggle="tooltip" class="btn btn-default" title="aaaa" data-placement="bottom">bbbb</a> <script src="Scripts/jquery-1.9.1.js"></script> <script src="Scripts/bootstrap.js"></script> <script> $(function () { $('[data-toggle="tooltip"]').tooltip() }) </script>
彈出框
源文件:popover.js
彈出框其實就是一種特殊的提示框,相比來講只是多了一個title標題而已
使用
(彈出框插件的用法和提示框組件幾乎如出一轍),惟一不同的就是插件名稱以及多餘的content字段。而關於自動初始化,也和提示框插件同樣,須要手動初始化
<a data-toggle="popover" class="btn btn-default" title="aaaa" data-content="ccccc" data-placement="bottom">bbbb</a>
警告框
源文件:alert.js
就是在警告框組件的基礎上,提供了 單擊x號關閉警告框的功能
使用
<div class="alert alert-danger"> <h3>警告標題</h3> <hr /> <p>警告內容警告內容</p> <p> <button class="btn btn-default" data-dismiss="alert">關閉</button> </p> </div>
默認狀況下,若是不設置data-target屬性,則會關閉x號按鈕元素所在的父元素容器,即外部的div元素。只須要保證設置了data-dismiss="alert"便可.
按鈕
源文件:button.js
按鈕插件提供了一組能夠控制按鈕多種狀態的功能,好比,一個按鈕有禁用狀態、正在加載狀態、正常狀態等
使用
禁用狀態在這裏再也不贅述。
正在加載和加載完成控制與顯示
<a id="aa" href="#" class="btn btn-default" data-loading-text="正在加載..." data-complete-text="已完成">提交</a> $('#aa').dblclick(function() { $('#aa').button('loading'); setTimeout(function () { $('#aa').button('complete'); }, 2000); }); $('#aa').click(function() { $('#aa').button('reset'); });
摺疊
源文件:collapse.js
當單擊一個觸發元素時,在另一個可摺疊區域進行顯示(或隱藏),再次單擊時能夠反轉顯示狀態。(經典的手風琴風格)
使用
<!-- 默認顯示摺疊區域--> <a class="btn btn-danger" data-toggle="collapse" data-target="#demo">觸發改變</a> <div id="demo" class="collapse in">摺疊區域...</div>
<!-- 默認隱藏摺疊區域--> <button class="btn btn-danger collapsed" data-toggle="collapse" data-target="#demo">按鈕</button> <div id="demo" class="collapse ">摺疊區域...</div>
輪播
源文件:carousel.js
旋轉輪播(Carousel)這個插件有不少種譯法,有人叫輪播,有人叫傳送帶
<div data-ride="carousel" class="carousel slide" id="carousel-container"> <!-- 圖片容器 --> <div class="carousel-inner"> <div class="item"> <img alt="第一張圖" src="A" /> </div> <div class="item active"> <img alt="第二張圖" src="B" /> </div> <div class="item"> <img alt="第三張圖" src="C" /> </div> </div> <!-- 圓圈指示符 --> <ol class="carousel-indicators"> <li data-slide-to="0" data-target="#carousel-container"></li> <li data-slide-to="1" data-target="#carousel-container"></li> <li data-slide-to="2" data-target="#carousel-container" class="active"></li> </ol> <!-- 左右控制按鈕 --> <a data-slide="prev" href="#carousel-container" class="left carouselcontrol"> <span class="glyphicon glyphicon-chevron-left"></span> </a> <a data-slide="next" href="#carousel-container" class="right carouselcontrol"> <span class="glyphicon glyphicon-chevron-right"></span> </a> </div>
帶有data-ride="carousel"的div就是輪播插件的容器,容器id爲carousel-container,稍後會用到。
還有兩個樣式,其中carousel樣式作樣式容器,而slide樣式和fade相似,用來定義輪播圖片的時候是否有特效.
針對圖片,輪播插件還提供了一個字幕說明樣式(carousel-caption),緊接着img元素定義便可。示例以下
<div class="item active"> <img src="..." alt="..." /> <div class="carousel-caption"> <h3>標題</h3> <p>描述...</p> </div> </div>
定位浮標
源文件:affix.js
Affix的效果就像其官方網站左邊的導航連接同樣。
<!—或者分開設置offset -- >
<div data-spy="affix" data-offset-top="60" data-offset-bottom="100" >導航內容 </div>
<!—合併設置offset -- >
<div data-spy="affix" data-offset="60" >導航內容</div>
data-offset-top表示一個完整的新網頁,從頂部向下拖動滾動條(也就是網頁向上滾動)這個像素之後,
而data-offset-bottom則表示距離最底部還有多少距離(本例60像素)之後,就要開始繼續滾動了.