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 简单抽屉效果的实现代码
Mar 09 Javascript
jQuery处理xml格式的返回数据(实例解析)
Nov 28 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
Dec 12 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
JQuery实现简单的图片滑动切换特效
Nov 22 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
Jan 04 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
详解Vue 实例中的生命周期钩子
Mar 21 Javascript
基于滚动条位置判断的简单实例
Dec 14 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
Jun 14 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
了解javascript中的Dom操作
May 27 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
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
php全角字符转换为半角函数
2014/02/07 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
js实现时间日期校验
2020/05/26 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python类中super() 的使用解析
2019/12/19 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
台湾旅游网站:雄狮旅游网
2017/08/16 全球购物
参观考察邀请函范文
2014/01/29 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
办公室岗位职责范本
2015/04/11 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
小学总务工作总结
2015/08/13 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
JavaScript实现简单的音乐播放器
2022/08/14 Javascript