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>
效果分别为:
以上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来配置的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
暂无评论内容