DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 功能強大的Bootstrap組件(結合js)
功能強大的Bootstrap組件(結合js)
編輯:關於JavaScript     

上兩篇只講了組件如何使用,基本沒有說js,這篇博客要結合js來講講
主要講解一下幾個組件

1.模態框
2.滾動監聽
3.標簽頁
4.工具提示
5.彈出框
6.按鈕
7.堆疊
8.輪換頁
9.側邊欄

首先導入css和js

<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="js/jquery-3.1.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>

1.模態框

我們通常在登錄注冊,或者閱讀某些條例時都是用這個模態框,所以模態框是非常常見的

首先寫一個打開模態框的按鈕

<!--data-target是我們的模態框的id,data-whatever="@ime"是我們傳入模態框的標簽和值-->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal" data-whatever="@ime">
  打開模態框
</button>

然後寫模態框

<div class="modal " id="myModal" role="dialog" aria-label="myModalLabel" aria-hidden="true">
  <!--這是小模態框,將modal-sm換成modal-lg是大模態框-->
  <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>
        <!--標題-->
        <div class="modal-title">Modal title</div>
      </div>
      <!--模態框內容-->
      <div class="modal-body">
        <!--模態框內容可以是文字或表格-->
        <!--<p>hello</p>-->
        <form>
          <div class="form-group">
            <label class="control-label">username</label>
            <input class="form-control" type="text">
          </div>
          <div class="form-group">
            <label class="control-label">password</label>
            <input class="form-control" type="password">
          </div>
        </form>
      </div>
      <!--模態框腳部-->
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">
          Close
        </button>
        <button type="button" class="btn btn-primary">
          保存
        </button>
      </div>
    </div>
  </div>
</div>

如果是點擊按鈕然後向模態框的表格傳入參數的話
在按鈕的屬性要加data-標簽:值
以上面data-whatever=”@ime”為例加了一個標簽為whatever,值為@ime的參數
下面是js操作

//  綁定模態框展示的方法
  $("#myModal").on("show.bs.modal",function(e){
//    獲得點擊打開的按鈕
    var button=$(e.relatedTarget)
//    根據標簽獲得按鈕傳入的參數
    var recipient=button.data("whatever")
//    獲得模態框本身
    var modal=$(this)
//    更改將title的text
    modal.find(".modal-title").text("Hello"+recipient);
//    更改body裡input的值
    modal.find(".modal-body input").val(recipient)
  })

2.滾動監聽

滑動到不同內容,標簽頁選中會變化
首先寫body屬性

<!--offset設為70,這個值是經過測試最佳的值-->
<body data-spy="scroll" data-target=".navbar" data-offset="70">

然後寫標簽頁

<!--標簽欄固定的顯示內容的頂部-->
    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
      <div class="container-fluid">
        <div class="collapse navbar-collapse js-navbar-scrollyspy" id="myScrollspy">
          <ul class="nav navbar-nav">
            <!--a標簽中的連接是下面標題的id-->
            <li><a href="#iwen">iwen</a> </li>
            <li><a href="#ime">ime</a> </li>
            <!--在標簽頁中嵌套下拉菜單-->
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                下拉菜單
                <span class="caret"></span>
              </a>
              <ul class="dropdown-menu" role="menu">
                <li><a href="#one" tabindex="-1">one</a> </li>
                <li><a href="#two" tabindex="-1">two</a> </li>
                <li><a href="#three" tabindex="-1">three</a> </li>
              </ul>
            </li>
          </ul>
        </div>
      </div>
    </nav>

然後寫內容

<h2 id="iwen">@iwen</h2>
<p>這是一個人 這是一個人</p>
<h2 id="ime">@ime</h2>
<p>這是一個人 這是一個人</p>
<h2 id="one">@one</h2>
<p>這是一個人 這是一個人</p>
<h2 id="two">@two</h2>
<p>這是一個人 這是一個人</p>
<h2 id="three">@three</h2>
<p>這是一個人 這是一個人</p>

建議把內容寫得長一點,這樣效果才會更加明顯,這裡演示不方便寫太多無用的文字

還可以寫一些js的方法

// 綁定標簽切換時的方法
  $("#myScrollspy").on("activate.bs.scrollspy",function(e){
    alert("hello");
  })

3.標簽頁

點擊不同的標簽可以顯示不同的內容

首先寫標簽欄

<ul id="myTab" class="nav nav-tabs">
    <!--a標簽鏈接對應下面tab-pane的id-->
    <li ><a href="#home" data-toggle="tab">Home</a> </li>
    <li><a href="#profile" data-toggle="tab">Profile</a> </li>
    <li class="dropdown">
      <a href="#" id="myTabdrop1" class="dropdown-toggle" data-toggle="dropdown">
        下拉菜單
        <span class="caret"></span>
      </a>
      <ul class="dropdown-menu" role="menu">
        <!--與普通下拉菜單不同,要加data-toggle="tab"-->
        <li><a href="#one" tabindex="-1" data-toggle="tab">one</a> </li>
        <li><a href="#two" tabindex="-1" data-toggle="tab">two</a> </li>
      </ul>
    </li>
  </ul>

然後寫不同標簽的內容

 <div id="myTabContent" class="tab-content">
    <div class="tab-pane fade" id="home">
      <p>home</p>
    <div class="tab-pane fade" id="profile">
      <p>profile</p>
    <div class="tab-pane fade" id="one">
      <p>one</p>
    <div class="tab-pane fade" id="two">
      <p>two</p>

可以用js初始化顯示的標簽頁
有下面幾種選擇標簽頁的方式

$('#myTabs a[href="#profile"]').tab('show') // 根據名字選擇
$('#myTabs a:first').tab('show') // 選擇第一個標簽頁
$('#myTabs a:last').tab('show') // 選擇最後一個標簽頁
$('#myTabs li:eq(2) a').tab('show') // 選擇第三個標簽頁(因為0是第一個),如果是下拉菜單裡的標簽頁,數字要加1

4.工具提示

<p>
    <!--若title內容為空則顯示data-original-title的內容,placement為顯示的位置,可設為top|bottom|left|right-->
    <!--參數可以以data-****的方式設置-->
    歡迎來到<a data-animation="false" id="myTooltip" href="#" data-toggle="tooltip" title="title"
        data-placement="bottom" data-original-title="www.jk.com">jack's page</a>
  </p>

然後要用js初始化,否則會沒有任何效果

//初始化tooltip,指向則顯示
$('[data-toggle="tooltip"]').tooltip();

5.彈出框
彈出框類似工具提示,但顯示的內容比工具提示更加豐富,也比它常用

<!--data-trigger="foucus"點擊空白可消失,不加的話點擊按鈕消失,設為hover的話鼠標移動的按鈕顯示,移開消失-->
  <!--這個彈出框標題為title,內容為content-->
  <button  type="button" class="btn btn-default js-popover" data-trigger="foucus" data-placement="bottom" data-toggle="popover" title="title" data-content="content">
    彈出框
  </button>

然後要用js初始化

//    初始化popover
 $(".js-popover").popover();

6.按鈕

前2篇講的是按鈕的基本樣式,這次是進階使用,可以讓按鈕在加載時顯示不同的文字

 <!--可以設置按鈕在loading時的文字-->
  <button type="button" data-loading-text="Loding for 3s" class="btn btn-primary js-loading-btn">
    Loading Status
  </button>

然後要用js綁定點擊事件

//  綁定按鈕的點擊事件
  $(".js-loading-btn").on("click", function (e) {
//    點擊後設為loading狀態,顯示loading的文字
    var btn = $(this).button("loading");
//    3s後恢復
    setTimeout(function (e) {
      btn.button("reset")
    }, 3000)
  })

7.堆疊

堆疊效果可以節省大量的屏幕控件,非常實用

這是點擊按鈕打開堆疊的

<!--href為顯示內容的id-->
  <a class="btn btn-primary" data-toggle="collapse" href="#collapseExample">點擊查看</a>
  <div class="collapse" id="collapseExample">
    <div class="well">
      Hello
    </div>
  </div>

這是面板組的堆疊

<div class="panel-group" id="accordion" role="tablist">
    <div class="panel panel-default">
      <div class="panel-heading" role="tab" id="headingOne">
        <!--顯示的標題-->
        <h4 class="panel-title">
          <!--data-parent要是panel-group的id-->
          <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">item1</a>
        </h4>
      </div>
      <!--加了in表示打開,不加表示隱藏-->
      <div id="collapseOne" class="panel-collapse collapse in" role="tabpanel">
        <div class="panel-body">
          Hello<br>
          Hello<br>
          Hello<br>
        </div>
      </div>
    </div>
    <div class="panel panel-default">
      <div class="panel-heading" role="tab" id="headingTwo">
        <h4 class="panel-title">
          <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">item1</a>
        </h4>
      </div>
      <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel">
        <div class="panel-body">
          Hello<br>
          Hello<br>
          Hello<br>
        </div>
      </div>
    </div>
    <div class="panel panel-default">
      <div class="panel-heading" role="tab" id="headingThree">
        <h4 class="panel-title">
          <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree">item1</a>
        </h4>
      </div>
      <div id="collapseThree" class="panel-collapse collapse" role="tabpanel">
        <div class="panel-body">
          Hello<br>
          Hello<br>
          Hello<br>
        </div>
      </div>
    </div>
  </div>

8.輪換頁

我們經常可以在網站的主頁可以看到

<div id="carousel-example-generic" class="carousel slide">
    <!--這是下面那三個白色圓indicator-->
    <ol class="carousel-indicators">
      <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
      <li data-target="#carousel-example-generic" data-slide-to="1"></li>
      <li data-target="#carousel-example-generic" data-slide-to="2"></li>
    </ol>
    <!--輪換頁的內容-->
    <div class="carousel-inner">
      <div class="item active">
        <img src="images/4.jpg">
        <!--添加文字-->
        <div class="carousel-caption">
          <h3>U3D</h3>
          <p>新版本升級</p>
        </div>
      </div>
      <div class="item ">
        <img src="images/2.jpg">
        <div class="carousel-caption">
          <h3>U3D</h3>
          <p>新品上線</p>
        </div>
      </div>
      <div class="item ">
        <img src="images/3.jpg">
        <div class="carousel-caption">
          <h3>Apple</h3>
          <p>Apple手表</p>
        </div>
      </div>
    </div>
    <!--輪換頁左邊和右邊的箭頭-->
    <a class="left carousel-control" href="#carousel-example-generic" data-slide="prew">
      <span class="glyphicon glyphicon-chevron-left"></span>
    </a>
    <a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
      <span class="glyphicon glyphicon-chevron-right"></span>
    </a>
  </div>

可以用js設置間隔和自動開始

  //設置間隔為2s且自動輪播
  $(".carousel").carousel({
    interval:2000
  })

9.側邊欄

側邊欄的主要內容是一個列表

<!--要設置寬度,在手機屏幕上隱藏-->
  <div class="col-md-3 col-sm-4 hidden-xs">
    <ul class="list-group affixed-element-top js-affixed-element-top">
      <a href="#" class="list-group-item">hello</a>
      <a href="#" class="list-group-item">hello</a>
      <a href="#" class="list-group-item">hello</a>
      <a href="#" class="list-group-item">hello</a>
      <a href="#" class="list-group-item">hello</a>
      <a href="#" class="list-group-item">hello</a>
      <a href="#" class="list-group-item">hello</a>
      <a href="#" class="list-group-item">hello</a>
    </ul>
  </div>

再寫style

  <style>
    .affixed-element-top.affix{
      /*如果想在底部的話可以改為bottom:10px;*/
      top:10px;
    }
    .affixed-element-top.affix-bottom{
      position: relative;
    }
  </style>

還要加一些js

 $(".js-affixed-element-top").affix({
    offset:{

    }
  })

Boostrap的基本用法就這樣,掌握後就可以做出很好的網頁了。

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

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved