AngularJs的UI組件ui-Bootstrap之Tooltip和Popover
tooltip和popover是輕量的、可擴(kuò)展的、用于提示的指令。對(duì)于移動(dòng)端來(lái)講,這兩個(gè)指令雖然可以正常工作,但是從用戶體驗(yàn)的角度并不推薦使用。
先說(shuō)tooltip,tooltip有三種使用方式:
(1)uib-tooltip 定義提示的文本
(2)uib-tooltip-html 定義提示的html字符串,該字符串不會(huì)編譯為html內(nèi)容(需要使用$sce.trustAsHtml編譯為html內(nèi)容)。需要注意內(nèi)容安全,防止腳本攻擊
(3)uib-tooltip-template 定義提示的html內(nèi)容,該內(nèi)容需要放在一個(gè)span或者div標(biāo)簽中
代碼為:
<!DOCTYPE html>
<html ng-app="ui.bootstrap.demo" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="/Content/bootstrap.css" rel="external nofollow" rel="stylesheet" />
<title></title>
<script src="/Scripts/angular.js"></script>
<script src="/Scripts/ui-bootstrap-tpls-1.3.2.js"></script>
<script>
angular.module('ui.bootstrap.demo', ['ui.bootstrap']).controller('TooltipDemoCtrl', function ($scope, $sce) {
$scope.htmlTooltip = $sce.trustAsHtml('代碼示例 <code>id:5</code>');
$scope.text = "一些文本";
});
</script>
<script type="text/ng-template" id="myTooltipTemplate.html">
<div>使用模板的提示框<strong>markup</strong>{{ text }}</div>
</script>
</head>
<body style="padding:30px">
<div ng-controller="TooltipDemoCtrl">
<div class="form-group"><button tooltip-placement="right" uib-tooltip="文本提示框" type="button" class="btn btn-default">按鈕</button></div>
<div class="form-group"><a href="#" rel="external nofollow" uib-tooltip-html="htmlTooltip">使用html的提示框</a></div>
<div class="form-group"><input type="text" uib-tooltip-template="'myTooltipTemplate.html'" value="模板提示框"/></div>
</div>
</body>
</html>
效果分別為:



以上3種tooltip可以使用的屬性有:
| 屬性名 | 默認(rèn)值 | 備注 |
| tooltip-animation | true | 是否在顯示和隱藏時(shí)使用動(dòng)畫(huà) |
| tooltip-append-to-body | false | 是否將提示框放在body的末尾 |
| tooltip-class | 加在tooltip上的自定義的類名 | |
| tooltip-enable | true | 是否啟用 |
| tooltip-is-open | false | 是否顯示提示框 |
| tooltip-placement | top | 提示框的位置??稍O(shè)置的值包括:top,top-left,top-right,bottom,bottom-left,bottom-right,left,left-top,left-bottom,right,right-top,right-bottom |
| tooltip-popup-close-delay | 0 | 關(guān)閉提示框前的延遲時(shí)間 |
| tooltip-popup-delay | 0 | 顯示提示框前的延遲時(shí)間 |
| tooltip-trigger | mouseenter | 顯示提示框的觸發(fā)事件 |
在tooltip-placement所表示的位置前加"auto",比如 "auto top"提示框會(huì)定位在它最近一個(gè)可滾動(dòng)的父元素中。
tooltip-trigger支持的顯示提示框和隱藏提示框的事件有:
mouseenter: mouseleave
click: click
outsideClick: outsideClick
focus: blur
none
使用時(shí)只需要設(shè)置顯示提示框的事件就可以了(隱藏提示框的事件會(huì)自動(dòng)設(shè)置)。
設(shè)置為click時(shí),在元素上單擊一次會(huì)顯示提示框,再單擊一次隱藏提示框。
設(shè)置為outsideClick時(shí),在元素上單擊一次會(huì)顯示提示框,在元素之外的其他地方單擊一次會(huì)隱藏提示框。
設(shè)置為none時(shí),可以和tooltip-is-open屬性配合使用,自己控制提示框顯示和隱藏的時(shí)機(jī)。
tooltip也支持全局配置,使用$uibTooltipProvider.options可以配置tooltip的默認(rèn)設(shè)置,如是否啟用動(dòng)畫(huà),顯示的位置,延遲時(shí)間等。使用$tooltipProvider.setTriggers可以擴(kuò)展提示框顯示和隱藏的觸發(fā)事件。
如下:
angular.module('ui.bootstrap.demo', ['ui.bootstrap'])
.config(['$uibTooltipProvider', function (uibTooltipProvider) {
uibTooltipProvider.options({
animation: false,
appendToBody: false,
placement: 'right',
popupCloseDelay: 0,
popupDelay: 0,
});
uibTooltipProvider.setTriggers( { 'openTrigger': 'closeTrigger' } );
}]).controller('TooltipDemoCtrl', function ($scope) {
});
以上為tooltip的內(nèi)容,再來(lái)說(shuō)popover,popover的實(shí)現(xiàn)是依賴于tooltip的module,因此這兩個(gè)指令在使用和配置上非常相似。
popover也有三種使用方式,分別是uib-popover,uib-popover-template和uib-popover-html,含義和使用方法同tooltip是一樣的,這里就不重復(fù)說(shuō)了。
popover的屬性有:
| 屬性名 | 默認(rèn)值 | 備注 |
| popover-animation | true | 是否在顯示和隱藏時(shí)使用動(dòng)畫(huà) |
| popover-append-to-body | false | 是否將提示框放在body的末尾 |
| popover-enable | true | 是否啟用 |
| popover-is-open | false | 是否顯示提示框 |
| popover-placement | top | 提示框的位置??稍O(shè)置的值包括:top,top-left,top-right,bottom,bottom-left,bottom-right,left,left-top,left-bottom,right,right-top,right-bottom |
| popover-popup-close-delay | 0 | 關(guān)閉提示框前的延遲時(shí)間 |
| popover-popup-delay | 0 | 顯示提示框前的延遲時(shí)間 |
| popover-trigger | mouseenter | 顯示提示框的觸發(fā)事件 |
| popover-title | 標(biāo)題 |
大部分屬性和tooltip也是一樣的,只是沒(méi)有popover-class,另外多了個(gè)popover-title。
需要注意的一點(diǎn)是,popover的全局配置和tooltip一樣,是使用$uibTooltipProvider來(lái)配置的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談angular.js中實(shí)現(xiàn)雙向綁定的方法$watch $digest $apply
Angular用戶都想知道數(shù)據(jù)綁定是怎么實(shí)現(xiàn)的。你可能會(huì)看到各種各樣的詞匯:$watch,$apply,$digest它們是如何工作的呢?這里我想回答這些問(wèn)題,其實(shí)它們?cè)诠俜降奈臋n里都已經(jīng)回答了,但是我還是想把它們結(jié)合在一起來(lái)講2015-10-10
Angular?項(xiàng)目路徑添加指定的訪問(wèn)前綴
這篇文章主要為大家介紹了Angular?項(xiàng)目路徑添加指定的訪問(wèn)前綴方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
如何使用AngularJs打造權(quán)限管理系統(tǒng)【簡(jiǎn)易型】
這篇文章主要介紹了使用AngularJs打造權(quán)限管理系統(tǒng)【簡(jiǎn)易型】的相關(guān)資料,需要的朋友可以參考下2016-05-05
前后端如何實(shí)現(xiàn)登錄token攔截校驗(yàn)詳解
這篇文章主要給大家介紹了關(guān)于前后端如何實(shí)現(xiàn)登錄token攔截校驗(yàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
詳解angular2采用自定義指令(Directive)方式加載jquery插件
本篇文章主要介紹了詳解angular2采用自定義指令(Directive)方式加載jquery插件 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02
Angular企業(yè)級(jí)開(kāi)發(fā)——MVC之控制器詳解
本篇文章主要介紹了Angular企業(yè)級(jí)開(kāi)發(fā)——MVC之控制器詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
angular5 子組件監(jiān)聽(tīng)父組件傳入值的變化方法
今天小編就為大家分享一篇angular5 子組件監(jiān)聽(tīng)父組件傳入值的變化方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
angular 實(shí)現(xiàn)同步驗(yàn)證器跨字段驗(yàn)證的方法
幾乎每個(gè)web應(yīng)用都會(huì)用到表單,那么驗(yàn)證器就是必不可少的東西,這篇文章主要介紹了angular 實(shí)現(xiàn)同步驗(yàn)證器跨字段驗(yàn)證的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
AngularJS下對(duì)數(shù)組的對(duì)比分析
下面小編就為大家?guī)?lái)一篇AngularJS下對(duì)數(shù)組的對(duì)比分析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
AngularJS實(shí)現(xiàn)給動(dòng)態(tài)生成的元素綁定事件的方法
這篇文章主要介紹了AngularJS實(shí)現(xiàn)給動(dòng)態(tài)生成的元素綁定事件的方法,結(jié)合實(shí)例形式分析了AngularJS動(dòng)態(tài)生成元素與事件綁定相關(guān)操作技巧,需要的朋友可以參考下2016-12-12

