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笔记 数据的存储与访问性能优化
Aug 02 Javascript
JavaScript实现自己的DOM选择器原理及代码
Mar 04 Javascript
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
javascript正则匹配汉字、数字、字母、下划线
Apr 10 Javascript
改变状态栏文字的js代码
Jun 13 Javascript
jQuery实现表格行上下移动和置顶效果
Jun 05 Javascript
javascript中apply、call和bind的使用区别
Apr 05 Javascript
jQuery仿IOS弹出框插件
Feb 18 Javascript
vue实现树形菜单效果
Mar 19 Javascript
jQuery操作动画完整实例分析
Jan 10 jQuery
微信小程序实现滑动操作代码
Apr 23 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
Nov 30 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函数microtime()用法与说明
2013/12/04 PHP
htm调用JS代码
2007/03/15 Javascript
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
python 中文件输入输出及os模块对文件系统的操作方法
2018/08/27 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
python pillow模块使用方法详解
2019/08/30 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
Python将字典转换为XML的方法
2020/08/01 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
生产副总岗位职责
2013/11/28 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
世界文化遗产导游词
2015/02/13 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
年会主持人开场白台词
2015/05/29 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL