zoukankan      html  css  js  c++  java
  • AngularJs的UI组件ui-Bootstrap分享(八)——Tooltip和Popover

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

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

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

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

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

    代码为:

     1 <!DOCTYPE html>
     2 <html ng-app="ui.bootstrap.demo" xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5     <link href="/Content/bootstrap.css" rel="stylesheet" />
     6     <title></title>
     7 
     8     <script src="/Scripts/angular.js"></script>
     9     <script src="/Scripts/ui-bootstrap-tpls-1.3.2.js"></script>
    10     <script>
    11 
    12         angular.module('ui.bootstrap.demo', ['ui.bootstrap']).controller('TooltipDemoCtrl', function ($scope, $sce) {
    13             $scope.htmlTooltip = $sce.trustAsHtml('代码示例 <code>id:5</code>');
    14 
    15             $scope.text = "一些文本";
    16         });
    17     </script>
    18     <script type="text/ng-template" id="myTooltipTemplate.html">
    19         <div>使用模板的提示框<strong>markup</strong>{{ text }}</div>
    20     </script>
    21 </head>
    22 <body style="padding:30px">
    23     <div ng-controller="TooltipDemoCtrl">
    24         <div  class="form-group"><button tooltip-placement="right" uib-tooltip="文本提示框" type="button" class="btn btn-default">按钮</button></div>
    25         <div  class="form-group"><a href="#" uib-tooltip-html="htmlTooltip">使用html的提示框</a></div>
    26         <div  class="form-group"><input type="text" uib-tooltip-template="'myTooltipTemplate.html'" value="模板提示框"/></div>
    27     </div>
    28 </body>
    29 </html>
    View Code

    效果分别为:

     以上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来配置的。


    目录:

    AngularJs的UI组件ui-Bootstrap分享(一)

    AngularJs的UI组件ui-Bootstrap分享(二)——Collapse

    AngularJs的UI组件ui-Bootstrap分享(三)——Accordion

    AngularJs的UI组件ui-Bootstrap分享(四)——Datepicker Popup

    AngularJs的UI组件ui-Bootstrap分享(五)——Pager和Pagination

    AngularJs的UI组件ui-Bootstrap分享(六)——Tabs

    AngularJs的UI组件ui-Bootstrap分享(七)——Buttons和Dropdown

    AngularJs的UI组件ui-Bootstrap分享(八)——Tooltip和Popover

    AngularJs的UI组件ui-Bootstrap分享(九)——Alert

    AngularJs的UI组件ui-Bootstrap分享(十)——Model

    AngularJs的UI组件ui-Bootstrap分享(十一)——Typeahead

    AngularJs的UI组件ui-Bootstrap分享(十二)——Rating

    AngularJs的UI组件ui-Bootstrap分享(十三)——Progressbar

    AngularJs的UI组件ui-Bootstrap分享(十四)——Carousel


  • 相关阅读:
    Cocos2dx-demo演示项目:Part2
    利用Python抓取亚马逊评论列表数据
    Cocos2dx-demo演示项目:Part1
    正则表达式匹配原理
    js正则函数中test和match的区别
    【别人家的孩子系列之】浅析正则表达式—(原理篇)
    JS 获取浏览器窗口大小
    javascript的insertBefore、insertAfter和appendChild简单介绍
    javascript 限制字符串字数换行 带BUG
    一行一行分析JQ源码学习笔记-06
  • 原文地址:https://www.cnblogs.com/pilixiami/p/5661600.html
Copyright © 2011-2022 走看看