国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Bootstrap學習筆記之js組件(4)

2019-11-20 09:44:19
字體:
來源:轉載
供稿:網友

這次我們來看下js組件的使用,本篇文章會有點長,希望大家可以耐心看,相信收獲會有不少。不少園友加我好友,表示喜歡我寫文字的風格,簡單明了,這里,再次謝謝你們的支持。一方面,自身技術有限,寫的東西都比較基礎,另一方面,寫的東西,都是根據自己的理解,把復雜的東西用最簡單的語言表達出來。所以,寫的有不對的地方,麻煩各位給予指正哈。

 一、js文件引用
注意點:jquery必須在在其它js文件之前引入,因為其它插件都是依賴于jquery。

 <!--<script src="js/jquery-1.11.3.min.js"></script> 本地引入的加載文件--><script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> --必須在bootstrp.min.js之前引入<script src="js/bootstrap.min.js"></script> 

二、data屬性
作用:通過data屬性,可使用任何的bootstrap插件,無須寫任何一段js代碼。前面講過的像:data-toggle="dropdown"等引用菜單插件。
那么既然有打開功能,如何關閉功能呢?在javascript里面添加下面代碼即可:

<script type="text/javascript"> $(document).off('.data-api'); </script> 

如果要關閉某一個特定的插件的功能,添加下面代碼即可: 

<script type="text/javascript"> // 關閉提示框的插件功能 $(document).off('.alert.data-api');  </script> 

所有的js插件基本都是下面幾步:
1:如何使用?---類對應如何寫?
2:如何調用?---類寫好了,如何使其寫的類生效?
3:事件處理---包括動作觸發前發生以及動作出發后發生
注意:所有動作觸發之前發生的,bootstrap提供了preventDefault,實現在動作執行之前將其停止。代碼如下:

 $('#myModal').on('show.bs.modal', function (e) { if (!data) return e.preventDefault() // 阻止模態框的展示,當然你也可換成阻止其它插件的出現}) 

 注意:bootstrap沒有對禁用javascript的瀏覽器采取補救措施,因此,我們需要自己寫一段代碼補救,相信大家都知道。
 <noscript> 你的瀏覽器不支持javascript,請下載最新的瀏覽器 </noscript> 
 三、模態框組件(modal.js)
注意點:
1:不支持同時打開多個模態框
2:模態框盡量位于body子元素的位置,避免其它組件影響模態框的展現和功能
3:移動端說明
4:增強可訪問性--添加role屬性
5:在模態框中可嵌入視屏,即data-toggle="modal" 
      我們來看下下面的列子,點擊button,會彈出一個模態框,關于這里的屬性,如果看過之前的文章,相信理解起來不難,這里不再詳解,可自行貼碼測試: 

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3個meta標簽*必須*放在最前面,任何其他內容都*必須*跟隨其后! --><title></title><link href="css/bootstrap.css" rel="stylesheet"><link href="css/bootstrap.min.css" rel="stylesheet"><link href="css/style.css" rel="stylesheet"></head><body> <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target=".bs-example-modal-lg"> 彈出大模態框 </button><div class="modal fade bs-example-modal-lg" id="mymodal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"> <div class="modal-dialog modal-lg">--大的模態框 <div class="modal-content"> <div class="modal-header">  <button type="button" class="close" data-dismiss="modal" aria-label="close">  <span aria-hidden="true">×</span>  </button>  <h4 class="modal-title">Modal title</h4> </div> <div class="modal-body">  <p>one fine body …</p> </div> <div class="modal-footer">  <button type="button" class="btn btn-default" data-dismiss="modal">close</button>  <button type="button" class="btn btn-primary">save changes</button> </div> </div>  </div></div><!-- 改變模態框的大小添加類modal-sm即可 --><button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target=".bs-example-modal-sm"> 彈出小模態框 </button><div class="modal fade bs-example-modal-sm" id="mymodal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"> <div class="modal-dialog modal-sm"> ---小模態框 <div class="modal-content"> <div class="modal-header">  <button type="button" class="close" data-dismiss="modal" aria-label="close">  <span aria-hidden="true">×</span>  </button>  <h4 class="modal-title">Modal title</h4> </div> <div class="modal-body">  <p>one fine body …</p> </div> <div class="modal-footer">  <button type="button" class="btn btn-default" data-dismiss="modal">close</button>  <button type="button" class="btn btn-primary">save changes</button> </div> </div>  </div></div><!-- 禁止動畫效果,刪掉fade即可 --><script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> <script type="text/javascript"> $("#mymodal").modal("show"); ---調用這句代碼才能使插件生效 </script></body></html>

實現效果如下:

 

 結合模態框,你也可以給body內容增加其它功能,比如嵌入表單的輸入框等,這里不再貼碼。
 模態框的事件,在javascript中添加下面的代碼即可,如下所示: 

復制代碼 代碼如下:

我們來看看模態框如何嵌入視屏,自己需要添加一些代碼,自動播放,停止等功能。先來看看代碼 

效果不再截圖,上面的src引入的是優酷的地址。 

四、滾動監聽組件
以導航條舉列,即根據滾動的位置來自動切換標簽頁。我們來看下代碼。
1:保證出現滾動條。

2:通常給body加data-spy,即使用data-spy="scroll" <body data-spy="scroll" data-target=".navbar" data-offset="70"> <div class="container" id="myScrollspy"> <nav class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container-fluid">  <div class="collapse navbar-collapse js-navbar-scrollyspy" id="navbar-scroll">  <ul class="nav navbar-nav">   <li class="active"><a href="#home">home</a></li>   <li><a href="#message">message</a></li>   <li><a href="#about">about</a></li>   <li class="dropdown">   <a href="#" class="btn btn-default dropdown-toggle" data-toggle="dropdown">下拉菜單<b class="caret"></b></a>   <ul class="dropdown-menu">   <li><a href="#one">one</a>   <li><a href="#two">two</a>   <li><a href="#three">three</a>   </ul>   </li>    </ul>  </div> </div> </nav> <!-- 展示的內容 --> <h1 id="home">home</h1> <p>111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 </p> <hr> <h1 id="message">message</h1> <p>111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 </p> <hr> <h1 id="about">about</h1> <p>111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 </p> <hr> <h1 id="one">one</h1> <p>111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 </p> <h1 id="two">two</h1> <p>111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 </p> <h1 id="three">three</h1> <p>111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 111111111111111111111111111111111111111111111111111111 </p> </div><!-- 理解data-offset的意思 -->

理解data-offset的意思:即當滾動位置時,距離頂部的偏移量。其次它的事件處理,與模態框的用法類似,不再講解。
效果如下:

 

五、提示框組件
注意:
1:使用data-toggle="tooltip"
2:data-placement表示提示框的方向,共有四個方向,left,right,bottom,top 
3:data-animation是將其動畫效果設為false,即鼠標移過去后,由原來的漸入漸出變為瞬間出現,沒有緩沖效果。 

六、彈出框組件
注意:
1:彈出框即為任意元素添加一小塊懸浮層,存放非主要信息。
2:當內容長度為0時,不顯示彈出框。使用data-toggle="popover"
3:依賴于提示框插件,且需手動初始化(見javascript里的初始化)
看下下面這段代碼,不再截圖: 

復制代碼 代碼如下:
<!--  點擊按鈕實現彈出,再點擊按鈕實現隱藏-->
<button  type="button"  class="btn btn-primary"  data-toggle="popover"  title="標題" data-content="and  here  is  some  amazing  content,it's  very  engaging,right?">點我彈出/隱藏彈出框</button>

點擊button時,出現,再點擊button,消失,如果想在空白處點擊便可將其隱藏怎么辦?
 添加data-trigger="focus"即可,隱藏焦點,trigger表示觸發的意思。
 

復制代碼 代碼如下:
<!-- 點擊按鈕彈出,點擊任一點空白處隱藏 ,最好使用a標簽,當然你也可以使用button-->
<a   tabindex="0" id="myPopover" class="btn  btn-lg  btn-danger"  role="button"  data-toggle="popover" 
data-trigger="focus"  title="Dismissible  popover"  data-content="and  this  is  a  beautiful  content">點我可消失</a>

七、警告框組件
注意:
1:使用data-dismiss="alert"
2:次插件可為警告信息添加點擊并消失的功能
3:使用關閉按鈕時,即close類時,它必須是alert的第一個子元素,且在它之前不許出現文本。
我們來看下代碼: 

<!-- 警告框 --><div class="alert alert-info fade in" id="myalert"> <button type="button" class="close" data-dismiss="alert" aria-label="close"> <span aria-hidden="true">×</span> </button> <span>歡迎你</span> <button type="button" class="btn btn-primary">詳情</button></div><div class="alert alert-info fade in" id="myalert1"> <button type="button" class="close" data-dismiss="alert" aria-label="close"> <span aria-hidden="true">×</span> </button> <span>歡迎你</span> <button type="button" class="btn btn-primary">詳情</button></div>

如果在javascript中存在多個警告框,并且你想將某個警告框關閉時,在javascript里添加下面代碼即可,如下:

 $("#myalert").alert('close') //第一個警告框備關閉了,或者將#myalert換成#myalert1時,第二個警告框將關閉$('#myalert1').on('closed.bs.alert', function () { alert("close"); --當點擊關閉按鈕后,執行alert事件}) 

八、按鈕組件
注意:
1:切換按鈕的狀態(禁用還是打開的)--這個用到autocomplete="off"來實現
2:將多個按鈕形成工具條等
3:通過設置data-loading-text="loading....."來設置加載的狀態 

<!-- 按鈕 --><button type="button" id="myButton" data-loading-text="loading...." class="btn btn-primary" autocomplete="off" >loading state</button><button type="button" class="btn btn-primary" data-toggle="button" aria-pressed="false" autocomplete="off">single toggle</button><!-- button組 --><div class="btn-group" data-toggle="buttons"> <label class="btn btn-primary active"> <input type="checkbox" autocomplete="off" checked>home </label> <label class="btn btn-primary "> <input type="checkbox" autocomplete="off" >message </label> <label class="btn btn-primary "> <input type="checkbox" autocomplete="off" >profile </label></div>

 如果希望在點擊button后,更改其內容,添加data-complete-text=“xxxx”即可,同時添加javascript代碼如下:

復制代碼 代碼如下:
<!-- 點擊觸發后,將內容進行更改data-complete-text表示為完成后的內容 -->
<button  type="button"   class="btn btn-primary  mybtn"  data-complete-text="finish"  autocomplete="off">點擊后內容自動更改</button><script>   $('.mybtn').on('click', function () {        $(this).button('complete') // 內容將變為finish    })</script>

設置點擊button切換狀態,并設置切換狀態時的時間,可在javascript里面添加如下代碼: 

<script> $('#myButton').on('click', function (e) { var btn = $(this).button('loading'); setTimeout(function(e){  btn.button('reset');//設置恢復原始狀態 },3000)  })</script>

九、折疊框組件
注意:使用data-toggle="collapse" 看下代碼: 

<a class="btn btn-primary" role="button" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample"> Link with href</a><div class="collapse" id="collapseExample"> <div class="well"> hello ,this is test! </div></div>

另外可結合面板組來進行使用,如下所示: 

 <!-- 面板組 --> <div class="panel-group" id="mypanel" role="tablist">  <!-- 第一個面板 -->  <div class="panel panel-default">  <div class="panel-heading" role="tab" id="headingone">   <h4 class="panel-title">    <a data-toggle="collapse" data-parent="#mypanel" href="#collapseone"    class="btn btn-primary">home</a>   </h4>  </div>  <!-- 內容-->  <div id="collapseone" class="panel-collapse collapse in" role="tabpanel">   <div class="panel-body">    關于我    你好啊    碎碎念   </div>  </div>  </div>  <!-- 第二個面板 --> </div>
     

通過點擊home來控制內容部分,是設置它的href="#collapseone"即內容所對應的id。
關于事件,跟前面使用的類似,這些組件,進行的時間用法都類似,如下 

<script type="text/javascript"> $('#mypanel').on('hidden.bs.collapse', function () { alert("2222");}) </script> 

十、carsousel滑動組件
注意:
使用data-ride="carousel" ,比如像我們通常制作的輪播圖等。先看下我制作的輪播圖代碼: 

<div class="container" id="myContainer"> ---注意data-target的目標 <div id="carousel1" class="carousel slide" data-ride="carousel" >  <ol class="carousel-indicators"> --indicators表示滑動指示,即從哪一張滑到哪一張   <li data-target="#carousel1" data-slide-to="0" class="active"></li>--從第一張開始滑動   <li data-target="#carousel1" data-slide-to="1"></li>   <li data-target="#carousel1" data-slide-to="2"></li>  </ol>  <!-- 呈現內容 -->  <div class="carousel-inner" role="listbox">   <div class="item active">   <img src="bg.jpeg" style="width:600px;height:600px;">   <div class="carousel-caption"> --carousel-caption承載添加的文字等    <h3>綠色陽光</h3>    <p>陽光心情,你我同行</p>   </div>   </div>   <div class="item ">   <img src="timg.jpg" style="width:600px;height: 600px;">   </div>   <div class="item ">   <img src="xx.jpg" style="width:600px;height: 600px;">   </div>  </div>    <!-- 左右兩個標簽-->  <a class="left carousel-control" href="#carousel1" role="button" data-slide="pre">   <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>   <span class="sr-only">previous</span>  </a>  <a class="right carousel-control" href="#carousel1" role="button" data-slide="next">   <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>   <span class="sr-only">next</span>  </a> </div></div>

效果如下:

 

關于滑動的快慢,你可以直接在div中添加data-interval="2000" 設置2秒切換,但這種方法出現問題就是
 當你刷新瀏覽器的時候,必須手動的去點一下左右按鈕,然后才能實現切換,最好的辦法是在javascript里進行設置。如下代碼所示

 <script type="text/javascript"> $(".carousel").carousel({ interval:2000; }) </script> 

十一、Affix組件
 注意:使用position:fixed進行定位,利用data-spy="affix" 結合data-offset來實現監聽,當發生某一事件時,進行偏移。貼碼看下列子: 

<div class="container"> <!-- 柵格系統進行布局 --> <div class="col-md-3">  <ul class="list-group affixed-element-top js-affixed-element-top">  <li class="list-group-item">1111111111</li>  <li class="list-group-item">222222222</li>  <li class="list-group-item">3333333333333</li>  <li class="list-group-item">44444444444</li>  <li class="list-group-item">555555555</li>  <li class="list-group-item">6666666666</li>  <li class="list-group-item">777777777777</li>  </ul> </div> <div class="js-content col-md-6">  <p>1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  </p>  <p>1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  </p>  <p>1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  </p>  <p>1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  </p>  <p>1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  </p>  <p>1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  </p>  <p>1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  1111111111111111111111111111111111111111111111  </p> </div> <div class="col-md-3 " >  <ul class="list-group affixed-element-bottom js-affixed-element-bottom">  <li class="list-group-item">1111111111</li>  <li class="list-group-item">222222222</li>  <li class="list-group-item">3333333333333</li>  <li class="list-group-item">44444444444</li>  <li class="list-group-item">555555555</li>  <li class="list-group-item">6666666666</li>  <li class="list-group-item">777777777777</li>  </ul>  </div></div> <!-- <script src="js/jquery-1.11.3.min.js"></script> 本地的加載文件--><script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script><script src="js/bootstrap.min.js"></script><script type="text/javascript"> $('.js-affixed-element-top').affix({ offset:{ }}) $('.js-affixed-element-bottom').affix({ offset:{bottom:200 }---當鼠標滾到最下面時,該div會自動偏移到距離底部200px的地方}) </script>

js組件差不多到此結束,學習bootstrap這個框架也差不多結束了,下一篇終結篇,打算自己專門用bootstrap設計一個頁面制作出來,跟大家分享。如果你也正在學習bootstrap框架,歡迎交流學習哈!

如果大家還想深入學習,可以點擊這里進行學習,再為大家附3個精彩的專題:

Bootstrap學習教程

Bootstrap實戰教程

Bootstrap插件使用教程

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦山县| 正安县| 石河子市| 万宁市| 古丈县| 凌云县| 庐江县| 广元市| 呼伦贝尔市| 从江县| 吐鲁番市| 彭州市| 迁西县| 岳阳市| 杂多县| 甘南县| 金湖县| 临清市| 阳江市| 屏东县| 日土县| 荔波县| 南漳县| 宿松县| 友谊县| 葵青区| 周至县| 齐齐哈尔市| 旬阳县| 逊克县| 香港| 穆棱市| 安化县| 丰宁| 青海省| 乌兰察布市| 醴陵市| 堆龙德庆县| 祁连县| 高唐县| 鄯善县|