AngularJs的UI组件ui-Bootstrap之Tooltip和Popover


Posted in Javascript onJuly 13, 2018

tooltip和popover是轻量的、可扩展的、用于提示的指令。对于移动端来讲,这两个指令虽然可以正常工作,但是从用户体验的角度并不推荐使用。

先说tooltip,tooltip有三种使用方式:

(1)uib-tooltip 定义提示的文本

(2)uib-tooltip-html 定义提示的html字符串,该字符串不会编译为html内容(需要使用$sce.trustAsHtml编译为html内容)。需要注意内容安全,防止脚本攻击

(3)uib-tooltip-template 定义提示的html内容,该内容需要放在一个span或者div标签中

代码为:

<!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>

效果分别为:

AngularJs的UI组件ui-Bootstrap之Tooltip和Popover

AngularJs的UI组件ui-Bootstrap之Tooltip和Popover

AngularJs的UI组件ui-Bootstrap之Tooltip和Popover

以上3种tooltip可以使用的属性有:

属性名 默认值 备注
tooltip-animation true 是否在显示和隐藏时使用动画
tooltip-append-to-body false 是否将提示框放在body的末尾
tooltip-class   加在tooltip上的自定义的类名
tooltip-enable true 是否启用
tooltip-is-open false 是否显示提示框
tooltip-placement top 提示框的位置。可设置的值包括: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 关闭提示框前的延迟时间
tooltip-popup-delay 0 显示提示框前的延迟时间
tooltip-trigger mouseenter 显示提示框的触发事件

在tooltip-placement所表示的位置前加"auto",比如 "auto top"提示框会定位在它最近一个可滚动的父元素中。

tooltip-trigger支持的显示提示框和隐藏提示框的事件有:

mouseenter: mouseleave
click: click
outsideClick: outsideClick
focus: blur
none

使用时只需要设置显示提示框的事件就可以了(隐藏提示框的事件会自动设置)。

设置为click时,在元素上单击一次会显示提示框,再单击一次隐藏提示框。

设置为outsideClick时,在元素上单击一次会显示提示框,在元素之外的其他地方单击一次会隐藏提示框。

设置为none时,可以和tooltip-is-open属性配合使用,自己控制提示框显示和隐藏的时机。

tooltip也支持全局配置,使用$uibTooltipProvider.options可以配置tooltip的默认设置,如是否启用动画,显示的位置,延迟时间等。使用$tooltipProvider.setTriggers可以扩展提示框显示和隐藏的触发事件。

如下:

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的内容,再来说popover,popover的实现是依赖于tooltip的module,因此这两个指令在使用和配置上非常相似。

popover也有三种使用方式,分别是uib-popover,uib-popover-template和uib-popover-html,含义和使用方法同tooltip是一样的,这里就不重复说了。

popover的属性有:

属性名 默认值 备注
popover-animation true 是否在显示和隐藏时使用动画
popover-append-to-body false 是否将提示框放在body的末尾
popover-enable true 是否启用
popover-is-open false 是否显示提示框
popover-placement top 提示框的位置。可设置的值包括: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 关闭提示框前的延迟时间
popover-popup-delay 0 显示提示框前的延迟时间
popover-trigger mouseenter 显示提示框的触发事件
popover-title   标题

大部分属性和tooltip也是一样的,只是没有popover-class,另外多了个popover-title。

需要注意的一点是,popover的全局配置和tooltip一样,是使用$uibTooltipProvider来配置的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript写的简单的计算器,内容很多,方法实用,推荐
Dec 29 Javascript
js取消单选按钮选中示例代码
Nov 14 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
JavaScript编程中实现对象封装特性的实例讲解
Jun 24 Javascript
AngularJS 模块化详解及实例代码
Sep 14 Javascript
深入浅析Vue组件开发
Nov 25 Javascript
Vuex 入门教程
Jan 10 Javascript
浅谈vue.js导入css库(elementUi)的方法
Mar 09 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
Oct 09 Javascript
Vue computed 计算属性代码实例
Apr 22 Javascript
Flexible.js可伸缩布局实现方法详解
Nov 13 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
Jul 13 #Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 #Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
Jul 13 #Javascript
微信小程序实现tab页面切换功能
Jul 13 #Javascript
php中and 和 &amp;&amp;出坑指南
Jul 13 #Javascript
vue项目base64字符串转图片的实现代码
Jul 13 #Javascript
angular 组件通信的几种实现方式
Jul 13 #Javascript
You might like
php设计模式 Delegation(委托模式)
2011/06/26 PHP
ucenter通信原理分析
2015/01/09 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
详解JavaScript的回调函数
2015/11/20 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
详解webpack babel的配置
2018/01/09 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
js 判断当前时间是否处于某个一个时间段内
2019/09/19 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
python多进程中的内存复制(实例讲解)
2018/01/05 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
2020/06/24 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
中层干部岗位职责
2013/12/18 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
五一口号
2014/06/19 职场文书
雷峰塔导游词
2015/02/09 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书