指令:当文字显示不全时显示tooltip提示框

问题描述:用table布局显示数据列表时,某列数据长度不确定时,一般会通过添加样式使文字超出某个长度时显示为...,同时使用tooltip显示出完整信息,此时需要编写指令判断文字宽度是否超出预定值,从而实现当文字显示不全时给出提示框,文字显示完全时无需给出提示框。

1. 指令代码

(function () {
  'use strict';

  angular
    .module('demo')
    .directive('widthOverflow', widthOverflow);

  function widthOverflow () {
    var directive = {
      restrict: 'A',
      scope: {
        enableTooltip: '='
      },
      link: linker
    };

    return directive;

    function linker (scope, element, attrs) {
      var onMouseOver = function () {
        var $el = $(element);
        if ($el[0].offsetWidth < $el[0].scrollWidth) {
          scope.enableTooltip = true;
        } else {
          scope.enableTooltip = false;
        }
        scope.$apply();
      };

      element.on('mouseover', onMouseOver);
      element.bind('$destroy', function () {
        element.unbind('mouseover');
      });
    }
  }
})();

 

2. html页面引用指令

<span class="text-ellipsis" style="width: 100px;"
    width-overflow
    enable-tooltip="enableTooltip"
    uib-tooltip="完整的文字信息"
    tooltip-enable="enableTooltip">
    完整的文字信息
</span>

<style>
    .text-ellipsis{
      font-weight: normal;
      display: inline-block;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
      cursor: default;
    }
</style>

 

转载于:https://www.cnblogs.com/chenboxi/p/9202740.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值