Bootstrap學習筆記之插件(三)

Bootstrap插件

一、模態框(Modal)  data-toggle="modal"
模態框(Modal)是覆蓋在父窗體上的子窗體。通常,目的是顯示來自一個單獨的源的內容,可以在不離開父窗體的情況下有一些互動。子窗體可提供信息、交互等
  <!-- 按鈕觸發模態框 -->
	<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">    //當用超鏈接代替button觸發時,改data-target爲href="#myModal",以識別要加載的模態框目標;data-toggle用以打開modal
		開始演示模態框
	</button>
	<!-- 模態框(Modal) -->
	<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">    //.modal識別爲模態框,.fade當切換時會淡入淡出,id與上面的data-target對應,aria-labelledby引用模態框的標題,aria-hidden爲true時窗口不可見,直到被觸發
		<div class="modal-dialog">
			<div class="modal-content">
				<div class="modal-header">    //.modal-header爲頭部定義樣式
					<button type="button" class="close" data-dismiss="modal" aria-hidden="true">    //data-dismiss用以關閉模態框
						×
					</button>
					<h4 class="modal-title" id="myModalLabel">    //.modal-title指定其爲標題
						模態框(Modal)標題
					</h4>
				</div>
				<div class="modal-body">    //.modal-body爲主體定義樣式
					在這裏添加一些文本
				</div>
				<div class="modal-footer">    //.modal-footer爲底部定義樣式
					<button type="button" class="btn btn-default" data-dismiss="modal">關閉
					</button>
					<button type="button" class="btn btn-primary">
						提交更改
					</button>
				</div>
			</div><!-- /.modal-content -->
		</div><!-- /.modal -->
	</div>	

  選項
  data-backdrop
    指定一個靜態的背景,當用戶點擊模態框外部時不會關閉模態框。
    boolean 或 string 'static'  默認值:true	
	
  data-keyboard
    當按下 escape 鍵時關閉模態框,設置爲 false 時則按鍵無效。
    boolean  默認值:true	
	
  data-show
    當初始化時顯示模態框。
    boolean  默認值:true	

  data-remote
    使用 jQuery .load 方法,爲模態框的主體注入內容。如果添加了一個帶有有效 URL 的 href,則會加載其中的內容。
    path  默認值:false	
	<a data-toggle="modal" href="remote.html" data-target="#modal">請點擊我</a>
	
  方法
  <script>
	$(function() {
		$('#myModal').modal({
			keyboard: true
		})
	});
  </script>  
  
  $('#identifier').modal({keyboard: false})
  $('#identifier').modal('toggle')
  $('#identifier').modal('show')
  $('#identifier').modal('hide')
  
  事件
  show.bs.modal
    在調用 show 方法後觸發。
	$('#identifier').on('show.bs.modal', function () {
	  // 執行一些動作...
	})
	
  shown.bs.modal
    當模態框對用戶可見時觸發(將等待 CSS 過渡效果完成)。
	$('#identifier').on('shown.bs.modal', function () {
	  // 執行一些動作...
	})

  hide.bs.modal
    當調用 hide 實例方法時觸發。
	$('#identifier').on('hide.bs.modal', function () {
	  // 執行一些動作...
	})

  hidden.bs.modal  
    當模態框完全對用戶隱藏時觸發。
    $('#identifier').on('hidden.bs.modal', function () {
	  // 執行一些動作...
	})
	
二、滾動監聽(Scrollspy)
  通常用於多個(超出展示區域)相似結構的模塊內容在同一頁面上展示,通過滾動條滾動,相應的導航欄項隨之變化
  //data-spy指定要監聽的元素, data-target指定導航組件nav元素的id或class, data-offset當計算滾動位置時,距離頂部的偏移像素,默認爲number:10
  <body data-spy="scroll" data-target=".navbar" data-offset="50">
	<nav class="navbar navbar-inverse navbar-fixed-top">
		<div class="container-fluid">
			<div class="navbar-header">
				<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
					<span class="icon-bar"></span> 
					<span class="icon-bar"></span> 
					<span class="icon-bar"></span>
				</button>
				<a class="navbar-brand" href="#">WebSiteName</a>
			</div>
			<div>
				<div class="collapse navbar-collapse" id="myNavbar">
					<ul class="nav navbar-nav">
						<li><a href="#section1">Section 1</a>
						</li>
						<li><a href="#section2">Section 2</a>
						</li>
						<li><a href="#section3">Section 3</a>
						</li>
						<li class="dropdown">
						    <a class="dropdown-toggle" data-toggle="dropdown" href="#">Section 4 <span class="caret"></span></a>
							<ul class="dropdown-menu">
								<li><a href="#section41">Section 4-1</a></li>
								<li><a href="#section42">Section 4-2</a></li>
							</ul>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</nav>
	<div id="section1">
		...
	</div>
	<div id="section2">
		...
	</div>
	<div id="section3">
		...
	</div>
	<div id="section41">
		...
	</div>
	<div id="section42">
		...
	</div>
  </body>
	
  方法
  .scrollspy('refresh')    用於添加或移除DOM元素時使用
    <div class="section">
        <h4 id="jmeter">jMeter<small><a href="#" οnclick="removeSection(this);">× 刪除該部分</a></small></h4>
        <p>jMeter 是一款開源的測試軟件。它是 100% 純 Java 應用程序,用於負載和性能測試。</p>
    </div>
    <div class="section">
        <h4 id="ejb">EJB</h4>
        <p>Enterprise Java Beans(EJB)是一個創建高度可擴展性和強大企業(比如 JBOSS、Web Logic 等)的 J2EE 上。</p>
    </div>
	
	<script>
    $(function(){
        removeSection = function(e) {
            $(e).parents(".section").remove();
            $('[data-spy="scroll"]').each(function () {
                var $spy = $(this).scrollspy('refresh')
            });
        }
        $("#myScrollspy").scrollspy();
    });
    </script>
	
  事件
  activate.bs.scrollspy
    每當一個新項目被滾動監聽激活時,觸發該事件。
    $("#myScrollspy").on('activate.bs.scrollspy',function(){
	  // var currentItem = $(".nav li.active > a").text();
      //$("#activeitem").html("目前您正在查看 - " + currentItem);
	})	
	
  垂直滾動監聽  (可參考最下面的附加導航Affix)
  注意:需要將左邊的膠囊標籤位置固定  position: fixed;	top: 20px;
	<body data-spy="scroll" data-target="#myScrollspy">
	  <div class="container">
	  <div class="row">
		<nav id="myScrollspy" class="col-md-3">
		  <ul class="nav nav-pills nav-stacked">
			<li class="active"><a href="#sec1">Section 1</a></li>
			<li><a href="#sec2">Section 2</a></li>
			<li><a href="#sec3">Section 3</a></li>
			<li><a href="#sec4">Section 4</a></li>
			<li><a href="#sec5">Section 5</a></li>
		  </ul>
		</nav>
		<div class="col-md-9">
		  <div id="sec1">
			...
		  </div>
		  <div id="sec2">
			...
		  </div>
		  ...
		</div>
	  </div>
	  </div>
	</body>
	
三、標籤頁(Tab)  切換時有動畫效果    data-toggle="tab"或"pill"
  需要添加 data-toggle="tab" 或 data-toggle="pill" 到錨文本鏈接中。
       .nav .nav-tabs(水平式)  .nav .nav-pills(膠囊式) 
  添加 .fade 到每個 .tab-pane 後面以爲標籤頁設置淡入淡出效果,第一個標籤頁必須添加 .in 類,否則初始化時沒有內容
  <ul class="nav nav-tabs" id="myTab">
	<li class="active"><a href="#home" data-toggle="tab">Home</a></li>
	...
  </ul>
  <div class="tab-content">
	<div class="tab-pane fade in active" id="home">...</div>
	...
  </div>	
	
  方法
  $().tab('show')  用以激活標籤頁元素和內容容器
  $(function () {
	$('#myTab li:eq(1) a').tab('show');
  });
	
  事件
  show.bs.tab
    在標籤頁顯示時觸發,但是必須在新標籤頁被顯示之前。分別使用 event.target 和 event.relatedTarget 來定位到激活的標籤頁和前一個激活的標籤頁。
  shown.bs.tab
    在標籤頁顯示時觸發,但是必須在某個標籤頁已經顯示之後。分別使用 event.target 和 event.relatedTarget 來定位到激活的標籤頁和前一個激活的標籤頁。
  <script>
    $(function(){
        $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
            // 獲取已激活的標籤頁的名稱
            var activeTab = $(e.target).text();
            // 獲取前一個激活的標籤頁的名稱
            var previousTab = $(e.relatedTarget).text();
            //$(".active-tab span").html(activeTab);
            //$(".previous-tab span").html(previousTab);
        });
    });
  </script>	
	
四、提示工具(Tooltip)    data-toggle="tooltip"
  注意:該插件不是純 CSS 插件。如需使用須用 jquery 激活它	
  <script>
    $(function () { $("[data-toggle='tooltip']").tooltip(); });
  </script>
  <a href="#" data-toggle="tooltip" title="默認的">默認的Tooltip</a>
  <a href="#" data-toggle="tooltip" title="左側的" data-placement="left">左側的Tooltip</a>
  <a href="#" data-toggle="tooltip" title="右側的" data-placement="right">右側的Tooltip</a>
  <a href="#" data-toggle="tooltip" title="上側的" data-placement="top">上側的Tooltip</a>
  <a href="#" data-toggle="tooltip" title="下側的" data-placement="bottom">下側的Tooltip</a>
  <button class="btn btn-success" data-toggle="tooltip" data-placement="bottom" title="向下的tooltip">底部的</button>
	
  選項
  data-animation
    提示工具使用 CSS 漸變濾鏡效果。
	boolean 默認值:true

  data-html
    向提示工具插入 HTML。如果爲 false,jQuery 的 text 方法將被用於向 dom 插入內容。如果您擔心 XSS 攻擊,請使用 text。
	boolean 默認值:false

  data-placement
    定位提示工具(即 top|bottom|left|right|auto)例如,如果 placement 是 "auto left",提示工具將會儘可能顯示在左邊,在情況不允許的情況下它纔會顯示在右邊。
	string|function 默認值:top

  data-selector
    如果提供了一個選擇器,提示工具對象將被委派到指定的目標。
	string 默認值:false

  data-title
    如果未指定 title 屬性,則 title 選項是默認的 title 值。
	string | function 默認值:''

  data-trigger
    定義如何觸發提示工具: click| hover | focus | manual。您可以傳遞多個觸發器,每個觸發器之間用空格分隔。
	string 默認值:'hover focus'

  data-content
    如果未指定 data-content 屬性,則使用默認的 content 值。
	string | function 默認值:''

  data-delay
    延遲顯示和隱藏提示工具的毫秒數 - 對 manual 手動觸發類型不適用。如果提供的是一個數字,那麼延遲將會應用於顯示和隱藏。如果提供的是對象,結構如下所示:
	delay:{ show: 500, hide: 100 }
	number | object 默認值:0

  data-container  
	向指定元素追加提示工具。實例: container: 'body'
	string | false 默認值:false
	
  方法
  <script>
    $(function () { $('.tooltip-show').tooltip('show');});    //顯示元素的提示工具。
    $(function () { $('.tooltip-hide').tooltip('hide');});    //隱藏元素的提示工具。
    $(function () { $('.tooltip-destroy').tooltip('destroy');});    //隱藏並銷燬元素的提示工具。
    $(function () { $('.tooltip-toggle').tooltip('toggle');});    //切換顯示/隱藏元素的提示工具。
    $(function () { $(".tooltip-options a").tooltip({html : true });    //向元素集合附加提示工具句柄。
  </script>  

  事件
  show.bs.tooltip
  當調用 show 實例方法時立即觸發該事件。
  shown.bs.tooltip
  當提示工具對用戶可見時觸發該事件(將等待 CSS 過渡效果完成)。
  hide.bs.tooltip
  當調用 hide 實例方法時立即觸發該事件。
  hidden.bs.tooltip
  當提示工具對用戶隱藏時觸發該事件(將等待 CSS 過渡效果完成)。
  例子:
    $(function () { $('.tooltip-show').on('show.bs.tooltip', function () {
        //alert("Alert message on show");
    })  
	
五、彈出框(Popover)    data-toggle="popover"
  類似上面的tooltip
  
  需要js激活
  <script>
    $(function () { $("[data-toggle='popover']").popover(); });
  </script>
  
  <a href="#" data-toggle="popover" title="下側的" data-content="底部的一些內容" data-placement="bottom">下側的Popover</a>
  <button class="btn btn-success" data-toggle="popover" title="向下的" data-content="底部的一些內容" data-placement="bottom">底部的</button>
  	
  選項
  data-animation
  data-html
  data-placement
  data-selector
  data-title
  data-trigger
  data-delay
  data-container

  方法
  $().popover(options);
  $().popover('toggle');
  $().popover('show');
  $().popover('hide');
  $().popover('destroy');
  
  事件
  show.bs.popover
  shown.bs.popover
  hide.bs.popover
  hidden.bs.popover

六、警告框(Alert)
  <div class="alert alert-warning fade in">    //注意此處並沒有添加.alert-dismissible    添加兩個類.fade & .in可在關閉時啓用動畫
	<a href="#" class="close" data-dismiss="alert">×</a>    //這個關閉(按鈕)較之前button生成的顏色更深一些
	<strong>警告!</strong>您的網絡連接有問題。
  </div>

  方法
  $('').alert();
    讓所有的警告框都帶有關閉功能。
  $('').alert('close');
    關閉所有的警告框。

  事件
  close.bs.alert
    當調用 close 實例方法時立即觸發該事件。
  closed.bs.alert
    當警告框被關閉時觸發該事件(將等待 CSS 過渡效果完成)。  

七、按鈕(Button)
  顯示加載狀態信息
  data-loading-text屬性值爲加載時顯示的內容
  <button id="fat-btn" class="btn btn-primary" data-loading-text="Loading..." type="button"> 加載狀態 </button>
  <script>
    $(function() {
        $(".btn").click(function(){
            $(this).button('loading').delay(1000).queue(function() {
             $(this).button('reset');
             $(this).dequeue(); 
            });
        });
    });  
  </script>

  切換顯示按壓狀態  data-toggle="button"
  <button type="button" class="btn btn-primary" data-toggle="button"> 單個切換 </button>

  單選按鈕/複選按鈕
  <div class="btn-group" data-toggle="buttons">
	<label class="btn btn-primary">
		<input type="radio" name="options"> 選項 1    //換爲<input type="checkbox">
	</label>
	<label class="btn btn-primary">
		<input type="radio" name="options"> 選項 2
	</label>
	<label class="btn btn-primary">
		<input type="radio" name="options"> 選項 3
	</label>
  </div>	
  
  方法 (點擊事件觸發)
  $(this).button('toggle');
    切換按壓狀態。賦予按鈕被激活的外觀。可以使用 data-toggle 屬性啓用按鈕的自動切換。
	
  $(this).button('loading').delay(1000).queue(function() {}); 
    當加載時,按鈕是禁用的,且文本變爲 button 元素的 data-loading-text 屬性的值。
	
  $(this).button('loading').delay(1000).queue(function() {
	$(this).button('reset');
	$(this).dequeue();
  }); 	
    重置按鈕狀態,加載loading文本內容恢復爲最初的內容。
	
  $(this).button('loading').delay(1000).queue(function() {
	$(this).button('complete');    //button需要設置自定義屬性data-complete-text的值
	$(this).dequeue();
  });  
    該方法中的字符串是指由用戶聲明的任何字符串。使用該方法,重置按鈕狀態,並添加新的內容。
  
八、摺疊(Collapse)  (參考組件十九:面板)
  <div class="panel-group" id="accordion">    //.panel-group多組摺疊對象容器
	<div class="panel panel-default">    //.panel需要摺疊的對象
		<div class="panel-heading">
			<h4 class="panel-title">
				<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">  //data-toggle data-parent href|data-target
					標題
				</a>
			</h4>
		</div>
		<div id="collapseOne" class="panel-collapse collapse in">    //id對應上面的href  三個類名不可少
			<div class="panel-body">
				內容
			</div>
		</div>
	</div>	
	...
  </div>  
  
  選項
  data-parent
    如果提供了一個選擇器,當可摺疊項目顯示時,指定父元素下的所有可摺疊的元素將被關閉。
	selector 默認值:false
  
  data-toggle
    切換調用可摺疊元素。
	boolean 默認值:true
	
  方法
  $('#identifier').collapse({toggle: false})  
    激活內容爲可摺疊元素。接受一個可選的 options 對象。
	
  $('#identifier').collapse('toggle')
    切換顯示/隱藏可摺疊元素。

  $('#identifier').collapse('show')
    顯示可摺疊元素。

  $('#identifier').collapse('hide')  
    隱藏可摺疊元素。
	
  事件
  show.bs.collapse
  shown.bs.collapse
  hide.bs.collapse
  hidden.bs.collapse  
  
九、輪播(Carousel)
  <div id="myCarousel" class="carousel slide" data-ride="carousel" data-slide="next" data-interval="2000">
  //屬性 data-slide 接受關鍵字 prev 或 next,用來改變幻燈片相對於當前位置的位置。
  //使用 data-slide-to 來向輪播傳遞一個原始滑動索引,data-slide-to="2" 將把滑塊移動到一個特定的索引,索引從 0 開始計數。
  //data-ride="carousel" 屬性用於標記輪播在頁面加載時就開始動畫播放。
	<!-- 輪播(Carousel)指標 -->
	<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>   
	<!-- 輪播(Carousel)項目 -->
	<div class="carousel-inner">    //循環的圖片
		<div class="item active">
			<img src="/wp-content/uploads/2014/07/slide1.png" alt="First slide">
			<div class="carousel-caption">標題 1</div>    //在下方的圓點上面顯示標題信息(任何html都可)
		</div>
		<div class="item">
			<img src="/wp-content/uploads/2014/07/slide2.png" alt="Second slide">
			<div class="carousel-caption">標題 2</div>
		</div>
		<div class="item">
			<img src="/wp-content/uploads/2014/07/slide3.png" alt="Third slide">
			<div class="carousel-caption">標題 3</div>
		</div>
	</div>
	<!-- 輪播(Carousel)導航 -->    //左右的導航(圖標)
	<a class="carousel-control left" href="#myCarousel" 
	   data-slide="prev">‹</a>
	<a class="carousel-control right" href="#myCarousel" 
	   data-slide="next">›</a>
  </div>   
  
  選項
  data-interval
    自動循環每個項目之間延遲的時間量。如果爲 false,輪播將不會自動循環。
	number 默認值:5000
  
  data-pause
    鼠標進入時暫停輪播循環,鼠標離開時恢復輪播循環。
	string 默認值:"hover"
  
  data-wrap
    輪播是否連續循環。
	boolean 默認值:true
	
  方法
  $('#identifier').carousel({interval: 2000})  
  初始化輪播爲可選的 options 對象,並開始循環項目。
  
  $('#identifier').carousel('cycle')
  從左到右循環輪播項目。
  
  $('#identifier').carousel('pause')
  停止輪播循環項目。
  
  $('#identifier').carousel(number)
  循環輪播到某個特定的幀(從 0 開始計數,與數組類似)。
  
  $('#identifier').carousel('prev')
  循環輪播到上一個項目。
  
  $('#identifier').carousel('next')
  循環輪播到下一個項目。
  
  事件
  slide.bs.carousel
  當調用 slide 實例方法時立即觸發該事件。
  
  slid.bs.carousel
  當輪播完成幻燈片過渡效果時觸發該事件。
  
十、附加導航(Affix)  
  某個 <div> 固定在頁面的某個位置,它們將在某個位置開始,但當頁面點擊某個標記,該 <div> 會鎖定在某個位置,不會隨着頁面其他部分一起滾動。  
  <body data-spy="scroll" data-target="#myScrollspy">    //結合垂直滾動監聽
	<div class="container">
	   <div class="jumbotron">
			<h1>Bootstrap Affix</h1>
		</div>
		<div class="row">
			<div class="col-xs-3" id="myScrollspy">
				<ul class="nav nav-tabs nav-stacked" data-spy="affix" data-offset-top="125">    //只需在此處添加 data-spy="affix"  data-offset-top設置偏移
					<li class="active"><a href="#section-1">第一部分</a></li>
					<li><a href="#section-2">第二部分</a></li>
					<li><a href="#section-3">第三部分</a></li>
					<li><a href="#section-4">第四部分</a></li>
					<li><a href="#section-5">第五部分</a></li>
				</ul>
			</div>
			<div class="col-xs-9">
				<h2 id="section-1">第一部分</h2>
				...
				<hr>
				<h2 id="section-2">第二部分</h2>
				...
				<hr>
				<h2 id="section-3">第三部分</h2>
				...
				<hr>
				<h2 id="section-4">第四部分</h2>
				...
				<hr>
				<h2 id="section-5">第五部分</h2>
				...
			</div>
		</div>
	</div>
  </body>
  
  $('#myAffix').affix({    //可不用設置data-spy及data-offset-top,可改由js實現
   offset: {
	  top: 100, bottom: function () {
		 return (this.bottom = 
			$('.bs-footer').outerHeight(true))
		 }
	  }
  })
  
  
  
  
  
  
  
  
  
  
  
	
	

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章