bootstrap學習總結-js組件(四)

来源:http://www.cnblogs.com/jtjds/archive/2016/06/09/5572205.html
-Advertisement-
Play Games

這次我們來看下js組件的使用,本篇文章會有點長,希望大家可以耐心看,相信收穫會有不少。不少園友加我好友,表示喜歡我寫文字的風格,簡單明瞭,這裡,再次謝謝你們的支持。一方面,博主自身技術有限,寫的東西都比較基礎,另一方面,博主寫的東西,都是根據自己的理解,把複雜的東西用最簡單的語言表達出來。所以,寫的 ...


    這次我們來看下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">&times;</span>
                                  </button>
                                   <h4  class="modal-title">Modal  title</h4>
                          </div>
                          <div  class="modal-body">
                                    <p>one  fine  body &hellip;</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">&times;</span> </button> <h4 class="modal-title">Modal title</h4> </div> <div class="modal-body"> <p>one fine body &hellip;</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中添加下麵的代碼即可,如下所示:

 <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"); ---調用這句代碼才能使插件模態框生效顯示出來

$('#myModal').on('hidden.bs.modal', function (e) { alert("111"); }) ---這個事件指當關閉模態框之後,alert事件將會被觸發
</script>

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

<a href="#" class="btn btn-default" data-toggle="modal" data-target="#videoModal" 
data-theVideo
="http://v.youku.com/v_show/id_XMTU2ODMyMDUyMA==.html" >VIDEO</a> <div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-labelledby="videoModal" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <div> <iframe width="100%" height="350" src=""></iframe> </div> </div> </div> </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"> //視屏函數 function autoPlayModal(){ var trigger = $("body").find('[data-toggle="modal"]'); trigger.click(function() { var theModal = $(this).data( "target" ); var videoSRC = $(this).attr( "data-theVideo" ); var videoSRCauto = videoSRC+"?autoplay=1" ; $(theModal+' iframe').attr('src', videoSRCauto); $(theModal+' button.close').click(function () { $(theModal+' iframe').attr('src', videoSRC); }); }); } //調用該函數 $(document).ready(function(){ autoPlayModal(); }); </script> <noscript>不支持javascript瀏覽器</noscript>

效果不再截圖,上面的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
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                  </p>
                  <hr>
                    <h1  id="message">message</h1>
                  <p>111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                  </p>
                    <hr>
                    <h1  id="about">about</h1>
                  <p>111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                  </p>
                    <hr>
                    <h1  id="one">one</h1>
                  <p>111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                  </p>
                    <h1  id="two">two</h1>
                  <p>111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                  </p>
                     <h1  id="three">three</h1>
                  <p>111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                        111111111111111111111111111111111111111111111111111111
                  </p>


         </div>

<!--  理解data-offset的意思 -->
View Code

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

   效果如下:

五:提示框組件

     註意:

     1:使用data-toggle="tooltip"

     2:data-placement表示提示框的方向,共有四個方向,left,right,bottom,top 

     3:data-animation是將其動畫效果設為false,即滑鼠移過去後,由原來的漸入漸出變為瞬間出現,沒有緩衝效果。

<div  class="container">
        <p  class="muted"> <!-- 緩和 -->
                  this  is  a  test   title,<a  href="#"  id="clickEvent"  data-toggle="tooltip"  title=""  
data-placement
="bottom" data-original-title="cnblog.com/jtjds" data-animation="false">click me,remember </p> </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"> $('[data-toggle="tooltip"]').tooltip();//初始化 $('#clickEvent').tooltip('show') //打開就直接顯示 $('#clickEvent').on('shown.bs.tooltip', function () { alert("2222"); //事件處理,顯示後將彈出此項 }) </script>

六:彈出框組件

   註意:

   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的第一個子元素,且在它之前不許出現文本。

    我們來看下代碼:

<!--  警告框 -->

              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 部署普通站點 1、首先下載apache24版本,下載地址為http://pan.baidu.com/s/1pLmvDgB; 2、解壓到你的電腦本地目錄,如D:\Apache24(下文配置都會以當前目錄作為參考說明) 3、修改D:\Apache24\conf\目錄下的httpd.conf文件 部署普通 ...
  • JavaScript數組簡介 JavaScript中的數組與其他語言中的數組是不同的,主要體現在: 數組中存儲的各項可以是不同類型的數據 數組的大小是動態變化的,當新增項時或移除項時可以動態的改變大小來容納當前數據項 在JavaScript中創建數組 在JavaScript中創建數組有兩種方式: 其... ...
  • webpack集成了模塊載入和打包等功能 ,這兩年在前端圈越來越手歡迎。平時一般是用requirejs、seajs作為模塊載入用,用grunt/gulp作為前端構建。webpack作為模塊化載入相容了amd/cmd模式,並且作為模塊化的資源可以是js/css/image coffeescript/s ...
  • 概述 上一篇我們介紹了通過構造函數和原型可以實現JavaScript中的“類”,由於構造函數和函數的原型都是對象,所以JavaScript的“類”本質上也是對象。這一篇我們將介紹JavaScript中的一個重要概念原型鏈,以及如何經原型鏈實現JavaScript中的繼承。 C#的繼承 首先,我們簡單... ...
  • ...
  • 隨著rc(release candidate,候選版本)版本的推出,萬眾矚目的angular2終於離正式發佈不遠啦!五月初舉辦的ng-conf大會已經過去了整整一個月,大多數api都如願保持在了相對穩定的狀態——當然也有router這樣的例外,在rc階段還在大面積返工,讓人頗為不解——不過總得說來, ...
  • 1、css的概念:(CascadingStyleSheet級聯樣式表) 優點:1.內容與表現分離。(用網頁的內容xhtml就可以與表象分開) 2.表象統一 3.豐富的樣式 4.減少網頁代碼 5.運用獨立於網頁的css 2.選擇器 1.標簽選擇器 標簽名{屬性:屬性值;} 2.類選擇器 .類名{屬性: ...
  • 開篇語 最近接手了一個移動端的項目。個人感覺是自己做得比較快而且比較健壯的一個。。。移動端最主要就是頁面要適用不同的手機屏幕,ipad等。下麵就分享一些技巧,讓你不依賴任何框架高效地搭建自己的項目。 一、樣式按組件或板塊分文件寫再合成 ①設置各種變數 採用scss或者less來寫css代碼有很多好處 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...