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 相关文章推荐
ie 处理 gif动画 的onload 事件的一个 bug
Apr 12 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
Apr 25 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
Dec 30 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
深入理解 JavaScript 中的 JSON
Apr 06 Javascript
Vue实现底部侧边工具栏的实例代码
Sep 03 Javascript
vue中使用better-scroll实现滑动效果及注意事项
Nov 15 Javascript
JS使用cookie保存用户登录信息操作示例
May 30 Javascript
jquery实现掷骰子小游戏
Oct 24 jQuery
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
vue 实现tab切换保持数据状态
Jul 21 Javascript
vue-cli 关闭热更新操作
Sep 18 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计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
深入浅出php socket编程
2015/05/13 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
使用jQuery实现的网页版的个人简历(可换肤)
2013/04/19 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
nodejs初始化init的示例代码
2018/10/10 NodeJs
解决VueCil代理本地proxytable无效报错404的问题
2020/11/07 Javascript
python虚拟环境的安装配置图文教程
2017/10/20 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
Python变量类型知识点总结
2019/02/18 Python
python实现超市商品销售管理系统
2019/10/25 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
英国领先的票务代理商之一:The Ticket Factory
2019/02/09 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
.NET remoting中对象激活的两种方式
2015/06/08 面试题
毕业生自荐信格式
2014/03/07 职场文书
社区文化建设方案
2014/05/02 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js