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 相关文章推荐
用window.location.href实现刷新另个框架页面
Mar 07 Javascript
JavaScript 新手24条实用建议[TUTS+]
Jun 21 Javascript
改善用户体验的五款jQuery插件分享
May 22 Javascript
对于Form表单reset方法的新认识
Mar 05 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
Jan 05 Javascript
javascript结合canvas实现图片旋转效果
May 03 Javascript
javascript实现动态导入js与css等静态资源文件的方法
Jul 25 Javascript
JavaScript Length 属性的总结
Nov 02 Javascript
jquery获取文档高度和窗口高度汇总
Jan 25 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
Dec 28 Javascript
angular4自定义表单控件[(ngModel)]的实现
Nov 23 Javascript
Vue修改项目启动端口号方法
Nov 07 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
详解python3实现的web端json通信协议
2016/12/29 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
使用tensorflow实现线性svm
2018/09/07 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
文员岗位职责范本
2014/03/08 职场文书
岗位安全生产责任书
2014/07/28 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
护士辞职信怎么写
2015/02/27 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS
nginx服务器的下载安装与使用详解
2021/08/02 Servers