使用BootStrap實(shí)現(xiàn)懸浮窗口的效果
經(jīng)常玩社群網(wǎng)站的想必對(duì)這樣一種場(chǎng)景很常見(jiàn),如圖:

鼠標(biāo)停在某個(gè)超鏈接上,然后會(huì)出現(xiàn)一個(gè)懸浮框,內(nèi)容時(shí)該賬號(hào)的一些信息。
剛好最近在做一些前端的東東,涉及到類似的需求?!髽?biāo)懸停,出現(xiàn)一個(gè)懸浮框,懸浮框描述一些具體信息。之前其實(shí)參考了網(wǎng)上的一篇文章,但覺(jué)得有點(diǎn)兒過(guò)于復(fù)雜。。而發(fā)現(xiàn):神奇的 bootstrap就自帶了這個(gè)功能。所以就用bootstrap的popover插件做了,效果還不錯(cuò)。雖然挺簡(jiǎn)單的,但還是紀(jì)念一下……
定義一個(gè)超鏈接,同時(shí)需注意相應(yīng)頁(yè)面的必要的css和js必須引入:
Html代碼
<link href="css/bootstrap.css" rel="stylesheet" /> <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> <script type="text/javascript" src="js/bootstrap.min.js"></script> <a href="#" class="bind_hover_card" data-toggle="popover" data-placement="bottom" data-trigger="hover"><img class="commentAvatarImage" src="img/social_dribbble.png" /></a>
data-toggle="popover"屬性則為該超鏈接綁定彈窗效果,data-placement="bottom"指定彈窗相對(duì)于超鏈接顯示的位置,data-trigger="hover"則是關(guān)鍵,指定懸浮時(shí)觸發(fā)彈窗顯示。。
關(guān)于bootstrap之popover插件的一些常見(jiàn)屬性如下:
選項(xiàng)名稱 類型/默認(rèn)值 Data 屬性名稱 描述
| animation | boolean 默認(rèn)值:true |
data-animation | 向彈出框應(yīng)用 CSS 褪色過(guò)渡效果。 |
| html | boolean 默認(rèn)值:false |
data-html | 向彈出框插入 HTML。如果為 false,jQuery 的 text 方法將被用于向 dom 插入內(nèi)容。如果您擔(dān)心 XSS 攻擊,請(qǐng)使用 text。 |
| placement | string|function 默認(rèn)值:top |
data-placement | 規(guī)定如何定位彈出框(即 top|bottom|left|right|auto)。 當(dāng)指定為 auto 時(shí),會(huì)動(dòng)態(tài)調(diào)整彈出框。例如,如果 placement 是 "auto left",彈出框?qū)?huì)盡可能顯示在左邊,在情況不允許的情況下它才會(huì)顯示在右邊。 |
| selector | string 默認(rèn)值:false |
data-selector | 如果提供了一個(gè)選擇器,彈出框?qū)ο髮⒈晃傻街付ǖ哪繕?biāo)。 |
| title | string | function 默認(rèn)值:'' |
data-title | 如果未指定 title 屬性,則 title 選項(xiàng)是默認(rèn)的 title 值。 |
| trigger | string 默認(rèn)值:'hover focus' |
data-trigger | 定義如何觸發(fā)彈出框: click| hover | focus | manual。您可以傳遞多個(gè)觸發(fā)器,每個(gè)觸發(fā)器之間用空格分隔。 |
| delay | number | object 默認(rèn)值:0 |
data-delay | 延遲顯示和隱藏彈出框的毫秒數(shù) - 對(duì) manual 手動(dòng)觸發(fā)類型不適用。如果提供的是一個(gè)數(shù)字,那么延遲將會(huì)應(yīng)用于顯示和隱藏。如果提供的是對(duì)象,結(jié)構(gòu)如下所示:
delay:{ show:500, hide:100} |
| container | string | false 默認(rèn)值:false |
data-container | 向指定元素追加彈出框。 實(shí)例: container: 'body' |
常見(jiàn)方法:
方法描述實(shí)例Options: .popover(options)向元素集合附加彈出框句柄。
$().popover(options)
Toggle: .popover('toggle')切換顯示/隱藏元素的彈出框。
$('#element').popover('toggle')
Show: .popover('show')顯示元素的彈出框。
$('#element').popover('show')
Hide: .popover('hide')隱藏元素的彈出框。
$('#element').popover('hide')
Destroy: .popover('destroy')隱藏并銷毀元素的彈出框。
$('#element').popover('destroy')
好了,下面重點(diǎn)是Js部分。
$(function() {
$("[data-toggle='popover']").popover({
html : true,
title: title(),
delay:{show:500, hide:1000},
content: function() {
return content();
}
});
});
而我們來(lái)模擬下動(dòng)態(tài)加載懸浮框的標(biāo)題和內(nèi)容:
//模擬動(dòng)態(tài)加載標(biāo)題(真實(shí)情況可能會(huì)跟后臺(tái)進(jìn)行ajax交互)
function title() {
return '田喜碧Hebe(節(jié)制的人生)';
}
//模擬動(dòng)態(tài)加載內(nèi)容(真實(shí)情況可能會(huì)跟后臺(tái)進(jìn)行ajax交互)
function content() {
var data = $("<form><ul><li><span aria-hidden='true' class='icon_globe'></span> <font>粉絲數(shù):</font>7389223</li>" +
"<li><span aria-hidden='true' class='icon_piechart'></span> <font>關(guān)注:</font>265</li>" +
"<li><span aria-hidden='true' class='icon_search_alt'></span> <font>微博:</font>645</li>" +
"<li><span aria-hidden='true' class='icon_pens_alt'></span> <font>所在地:</font>臺(tái)灣</li>" +
"<input id='btn' type='button' value='關(guān)注' onclick='test()'/></form>");
return data;
}
//模擬懸浮框里面的按鈕點(diǎn)擊操作
function test() {
alert('關(guān)注成功');
}
查看效果:

以上所述是小編給大家介紹的使用BootStrap實(shí)現(xiàn)懸浮窗口的效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript實(shí)現(xiàn)瀑布流布局的3種方式
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)瀑布流布局的3種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
javascript實(shí)現(xiàn)日歷控件(年月日關(guān)閉按鈕)
經(jīng)常使用google的朋友一定對(duì)google絢麗的日歷控件記憶猶新吧,那我們也來(lái)實(shí)現(xiàn)一個(gè),雖然功能和效果比不上,但重要的是實(shí)現(xiàn)的過(guò)程2012-12-12
Node.js中AES加密和其它語(yǔ)言不一致問(wèn)題解決辦法
這篇文章主要介紹了Node.js中AES加密和其它語(yǔ)言不一致問(wèn)題解決辦法,例如和C#、JAVA語(yǔ)言相互通信時(shí),需要的朋友可以參考下2014-03-03
JavaScript設(shè)置名字輸入不合法的實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript設(shè)置名字輸入不合法的方法,需要的朋友可以參考下2017-05-05
微信小程序picker多列選擇器(mode = multiSelector)
本文主要介紹了微信小程序picker多列選擇器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
教你JavaScript利用charAt()統(tǒng)計(jì)出現(xiàn)次數(shù)最多的字符和次數(shù)
這篇文章主要介紹了JavaScript利用charAt()統(tǒng)計(jì)出現(xiàn)次數(shù)最多的字符和次數(shù)的操作方法,本文以判斷一個(gè)字符串'aabcdobdackoppz'中出現(xiàn)次數(shù)最多的字符,并統(tǒng)計(jì)其次數(shù)為例,通過(guò)實(shí)例代碼給大家詳細(xì)介紹,需要的朋友參考下吧2021-08-08
JS簡(jiǎn)單限制textarea內(nèi)輸入字符數(shù)量的方法
這篇文章主要介紹了JS簡(jiǎn)單限制textarea內(nèi)輸入字符數(shù)量的方法,涉及JavaScript響應(yīng)鼠標(biāo)及鍵盤(pán)事件處理textarea輸入框字符的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
js 提交form表單和設(shè)置form表單請(qǐng)求路徑的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇js 提交form表單和設(shè)置form表單請(qǐng)求路徑的實(shí)現(xiàn)方法。2016-10-10
js創(chuàng)建對(duì)象幾種方式的優(yōu)缺點(diǎn)對(duì)比
這篇文章主要對(duì)比了js創(chuàng)建對(duì)象幾種方式的優(yōu)缺點(diǎn),感興趣的小伙伴們可以參考一下2016-09-09

