Bootstrap(JS插件篇)

如何導(dǎo)入JavaScript插件漾月?

Bootstrap的JavaScript插件可以單獨(dú)導(dǎo)入到頁面中楚里,也可以一次性導(dǎo)入到頁面中炭菌。因?yàn)樵贐ootstrap中的JavaScript插件都是依賴于jQuery庫姆怪,所以不論是單獨(dú)導(dǎo)入還一次性導(dǎo)入之前必須先導(dǎo)入jQuery庫。

(1)一次性導(dǎo)入:

Bootstrap提供了一個(gè)單一的文件夹厌,這個(gè)文件包含了Bootstrap的所有JavaScript插件,即bootstrap.js(壓縮版本:bootstrap.min.js)裆悄。
具體使用如下(或見右側(cè)代碼編輯器28-29行):

<!—導(dǎo)入jQuery版本庫矛纹,因?yàn)锽ootstrap的JavaScript插件依賴于jQuery -->
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<!—- 一次性導(dǎo)入所有Bootstrap的JavaScript插件(壓縮版本) -->
<script src="js/bootstrap.min.js"></script>

特別聲明:jQuery版本庫也可以加載本地的jQuery版本。

(2)單獨(dú)導(dǎo)入:

為方便單獨(dú)導(dǎo)入特效文件光稼,Bootstrap V3.2中提供了12種JavaScript插件或南,他們分別是:

? 動(dòng)畫過渡(Transitions):對(duì)應(yīng)的插件文件“transition.js”

? 模態(tài)彈窗(Modal):對(duì)應(yīng)的插件文件“modal.js”

? 下拉菜單(Dropdown):對(duì)應(yīng)的插件文件“dropdown.js”

? 滾動(dòng)偵測(Scrollspy):對(duì)應(yīng)的插件文件“scrollspy.js”

? 選項(xiàng)卡(Tab):對(duì)應(yīng)的插件文件“tab.js”

? 提示框(Tooltips):對(duì)應(yīng)的插件文件“tooltop.js”

? 彈出框(Popover):對(duì)應(yīng)的插件文件“popover.js”

? 警告框(Alert):對(duì)應(yīng)的插件文件“alert.js”

? 按鈕(Buttons):對(duì)應(yīng)的插件文件“button.js”

? 折疊/手風(fēng)琴(Collapse):對(duì)應(yīng)的插件文件“collapse.js”

? 圖片輪播Carousel:對(duì)應(yīng)的插件文件“carousel.js”

? 自動(dòng)定位浮標(biāo)Affix:對(duì)應(yīng)的插件文件“affix.js”

上述單獨(dú)插件的下載可到github去下載(https://github.com/twbs/bootstrap)。

第1章 動(dòng)畫過渡(Transitions)

這一小節(jié)我們先來講“動(dòng)畫過渡(Transitions)”這個(gè)插件的使用艾君,源文件:transition.js

Bootstrap框架默認(rèn)給各個(gè)組件提供了基本動(dòng)畫的過渡效果采够,如果要使用,有兩種方法:
? 調(diào)用統(tǒng)一編譯的bootstrap.js腻贰;
? 調(diào)用單一的過渡動(dòng)畫的JavaScript插件文件transition.js吁恍。

/*Bootstrap上對(duì)外公布的transition.js的地址*/
<script src="http://cdn.bootcss.com/bootstrap/2.3.1/js/bootstrap-transition.js"></script>

transition.js文件為Bootstrap具有過渡動(dòng)畫效果的組件提供了動(dòng)畫過渡效果。不過需要注意的是播演,這些過渡動(dòng)畫都是采用CSS3來實(shí)現(xiàn)的冀瓦,所以IE6-8瀏覽器是不具備這些過渡動(dòng)畫效果。

默認(rèn)情況之下写烤,Bootstrap框架中以下組件使用了過渡動(dòng)畫效果:

  1. 模態(tài)彈出窗(Modal)的滑動(dòng)和漸變效果翼闽;

  2. 選項(xiàng)卡(Tab)的漸變效果;

  3. 警告框(Alert)的漸變效果洲炊;

  4. 圖片輪播(Carousel)的滑動(dòng)效果感局。

第2章 模態(tài)彈出框(Modals)

插件的源文件:modal.js尼啡。

<script src="http://cdn.bootcss.com/bootstrap/2.3.1/js/bootstrap-modal.js"></script>

在 Bootstrap 框架中把模態(tài)彈出框統(tǒng)一稱為 Modal。這種彈出框效果在大多數(shù) Web 網(wǎng)站的交互中都可見询微。比如點(diǎn)擊一個(gè)按鈕彈出一個(gè)框崖瞭,彈出的框可能是一段文件描述,也可能帶有按鈕操作撑毛,也有可能彈出的是一張圖片书聚。如下圖所示:

(1)結(jié)構(gòu)分析

Bootstrap框架中的模態(tài)彈出框,分別運(yùn)用了“modal”藻雌、“modal-dialog”和“modal-content”樣式雌续,而彈出窗真正的內(nèi)容都放置在“modal-content”中,其主要又包括三個(gè)部分:

? 彈出框頭部胯杭,一般使用“modal-header”表示驯杜,主要包括標(biāo)題和關(guān)閉按鈕
? 彈出框主體,一般使用“modal-body”表示做个,彈出框的主要內(nèi)容
? 彈出框腳部鸽心,一般使用“modal-footer”表示,主要放置操作按鈕

對(duì)于一個(gè)模態(tài)彈出窗而言叁温,modal-content才是樣式的關(guān)鍵再悼。其主要設(shè)置了彈出窗的邊框、邊距膝但、背景色和陰影等樣式冲九。modal-content中的modal-header、modal-body和modal-footer三個(gè)部分樣式主要控制一些間距的樣式跟束。而modal-footer都是用來放置按鈕莺奸,所以底部還對(duì)包含的按鈕做了一定的樣式處理。

<div class="modal show">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
                <h4 class="modal-title">模態(tài)彈出窗標(biāo)題</h4>
            </div>
            <div class="modal-body">
                <p>模態(tài)彈出窗主體內(nèi)容</p>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">關(guān)閉</button>
                <button type="button" class="btn btn-primary">保存</button>
            </div>
        </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

(2)實(shí)現(xiàn)原理解析

bootstrap中的“模態(tài)彈出框”有以下幾個(gè)特點(diǎn):

1冀宴、模態(tài)彈出窗是固定在瀏覽器中的灭贷。
2、單擊右側(cè)全屏按鈕略贮,在全屏狀態(tài)下甚疟,模態(tài)彈出窗寬度是自適應(yīng)的,而且modal-dialog水平居中逃延。
3览妖、當(dāng)瀏覽器視窗大于768px時(shí),模態(tài)彈出窗的寬度為600px揽祥。

蒙板樣式實(shí)現(xiàn):
大家或許注意到了讽膏,在做模態(tài)彈出窗時(shí),底部常常會(huì)有一個(gè)透明的黑色蒙層效果拄丰,如下圖所示:


在Bootstrap框架中為模態(tài)彈出窗也添加了一個(gè)這樣的蒙層樣式“modal-backdrop”府树,只不過他默認(rèn)情況下是全屏黑色的俐末。同樣,給其添加了一個(gè)過渡動(dòng)畫奄侠,從fade到in卓箫,把opacity值從0變成了0.5。上圖展示的就是in狀態(tài)下的效果遭铺。

兩種尺寸選擇:
Bootstrap框架還為模態(tài)彈出窗提供了不同尺寸丽柿,一個(gè)是大尺寸樣式“modal-lg”,另一個(gè)是小尺寸樣式“modal-sm”魂挂。其結(jié)構(gòu)上稍做調(diào)整。

<div class="modal-dialog modal-lg">
<div class="modal-dialog modal-sm">

(3)觸發(fā)模態(tài)彈出窗2種方法

眾所周知馁筐,模態(tài)彈出窗在頁面加載完成時(shí)涂召,是被隱藏在頁面中的,只有通過一定的動(dòng)作(事件)才能觸發(fā)模態(tài)彈出窗的顯示敏沉。在Bootstrap框架中實(shí)現(xiàn)方法有2種果正,接下來分別來介紹這2種觸發(fā)模態(tài)彈出窗的使用方法。
聲明式觸發(fā)方法:

方法一:

模態(tài)彈出窗聲明盟迟,只需要自定義兩個(gè)必要的屬性:data-toggle和data-target(bootstrap中聲明式觸發(fā)方法一般依賴于這些自定義的data-xxx 屬性秋泳。比如data-toggle="" 或者 data-dismiss="")。例如:

<!-- 觸發(fā)模態(tài)彈出窗的元素 -->
<button type="button" data-toggle="modal" data-target="#mymodal" class="btn btn-primary">點(diǎn)擊我會(huì)彈出模態(tài)彈出窗</button>
<!-- 模態(tài)彈出窗 -->
<div class="modal fade" id="mymodal">
    <div class="modal-dialog">
        <div class="modal-content">
        <!-- 模態(tài)彈出窗內(nèi)容 -->
        </div>
    </div>
</div>

注意以下事項(xiàng):
1攒菠、data-toggle必須設(shè)置為modal(toggle中文翻譯過來就是觸發(fā)器)迫皱;
2、data-target可以設(shè)置為CSS的選擇符辖众,也可以設(shè)置為模態(tài)彈出窗的ID值卓起,一般情況設(shè)置為模態(tài)彈出窗的ID值,因?yàn)镮D值是唯一的值凹炸。

方法二:

觸發(fā)模態(tài)彈出窗也可以是一個(gè)鏈接<a>元素戏阅,那么可以使用鏈接元素自帶的href屬性替代data-target屬性,如:

<!-- 觸發(fā)模態(tài)彈出窗的元素 -->
<a data-toggle="modal" href="#mymodal" class=" btn btn-primary" >點(diǎn)擊我會(huì)彈出模態(tài)彈出窗</a>
<!-- 模態(tài)彈出窗 -->
<div class="modal fade"  id="mymodal" >
    <div class="modal-dialog" >
        <div class="modal-content" >
        <!-- 模態(tài)彈出窗內(nèi)容 -->
        </div>
    </div>
</div>

(4)為彈出框增加過度動(dòng)畫效果

可通過給“.modal”增加類名“fade”為模態(tài)彈出框增加一個(gè)過渡動(dòng)畫效果啤它。
class="modal fade"

(5)模態(tài)彈出窗的使用

data-參數(shù)說明

除了通過data-toggle和data-target來控制模態(tài)彈出窗之外奕筐,Bootstrap框架針對(duì)模態(tài)彈出框還提供了其他自定義data-屬性,來控制模態(tài)彈出窗变骡。比如說:是否有灰色背景modal-backdrop离赫,是否可以按ESC鍵關(guān)閉模態(tài)彈出窗。有關(guān)于Modal彈出窗自定義屬性相關(guān)說明如下所示:

JavaScript觸發(fā)方法

除了使用自定義屬性觸發(fā)模態(tài)彈出框之外锣光,還可以通過JavaScript方法來觸發(fā)模態(tài)彈出窗笆怠。通過給一個(gè)元素一個(gè)事件,來觸發(fā)誊爹。比如說給一個(gè)按鈕一個(gè)單擊事件蹬刷,然后觸發(fā)模態(tài)彈出窗瓢捉。

<button class="btn btn-primary" type="button">點(diǎn)擊我</button>
<!-- 模態(tài)彈出窗內(nèi)容 -->
<div class="modal" id="mymodal">

JavaScript觸發(fā)的彈出窗代碼:

<script>
$(function(){
  $(".btn").click(function(){
    $("#themodal").modal();javascript:;
  });
});
</script>

(6)JavaScript觸發(fā)時(shí)的參數(shù)設(shè)置

使用JavaScript觸發(fā)模態(tài)彈出窗時(shí),Bootstrap框架提供了一些設(shè)置办成,主要包括屬性設(shè)置泡态、參數(shù)設(shè)置和事件設(shè)置。

  1. 屬性設(shè)置
    模態(tài)彈出窗默認(rèn)支持的自定義屬性主要有:

    比如你不想讓用戶按ESC鍵關(guān)閉模態(tài)彈出窗迂卢,你就可以這樣做:
$(function(){
    $(".btn").click(function(){
        $("#mymodal").modal({
            keyboard:false
        });
    });
});
  1. 參數(shù)設(shè)置:
    在Bootstrap框架中還為模態(tài)彈出窗提供了三種參數(shù)設(shè)置某弦,具體說明如下:


  2. 事件設(shè)置:
    模態(tài)彈出窗還支持四種類型的事件,分別是模態(tài)彈出窗的彈出前而克、彈出后靶壮,關(guān)閉前、關(guān)閉后员萍,具體描述如下:



    調(diào)用方法也非常簡單:

$('#myModal').on('hidden.bs.modal', function (e) {
    // 處理代碼...
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腾降,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子碎绎,更是在濱河造成了極大的恐慌螃壤,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筋帖,死亡現(xiàn)場離奇詭異奸晴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)日麸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門寄啼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赘淮,你說我怎么就攤上這事辕录。” “怎么了梢卸?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵走诞,是天一觀的道長噪猾。 經(jīng)常有香客問我虚缎,道長,這世上最難降的妖魔是什么彰触? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任戴陡,我火速辦了婚禮塞绿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恤批。我一直安慰自己异吻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诀浪,像睡著了一般棋返。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雷猪,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天睛竣,我揣著相機(jī)與錄音,去河邊找鬼求摇。 笑死射沟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的与境。 我是一名探鬼主播验夯,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摔刁!你這毒婦竟也來了簿姨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤簸搞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后准潭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趁俊,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年刑然,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寺擂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泼掠,死狀恐怖怔软,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情择镇,我是刑警寧澤挡逼,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站腻豌,受9級(jí)特大地震影響家坎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吝梅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一虱疏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苏携,春花似錦做瞪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽著拭。三九已至,卻和暖如春矛物,著一層夾襖步出監(jiān)牢的瞬間茫死,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工履羞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留峦萎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓忆首,卻偏偏與公主長得像爱榔,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子糙及,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容