发现文字溢出时,自动添加提示

--------------------------------代码----------------------------
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./jquery-1.12.2.js"></script>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .son1, .son2 {
            width: 300px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            border: 1px solid red;
        }
    </style>
    <script>
        $(function () {
            function isTextOverflow(target) {
                var cloneEle = target.clone().css({
                    overflow: 'visible',
                    display: 'inline', // 必须改变元素的display属性,否则元素是块级元素时,宽度是屏幕大小
                    width: '100%'
                });
                var parent = target.parent();
                parent.append(cloneEle);

                var textWidth = cloneEle.width();
                var maxWidth = target.width();
                cloneEle.remove();
                return textWidth > maxWidth;
            }

            function mouseover() {
                var target = $(this);
                if (isTextOverflow(target)) {
                    if (!target.attr('title')) {
                        target.attr("title", target.text());
                    }
                }
            }

            /*要想看到提示,必然需要鼠标划过之类的事件,所以在事件发生时触发即可*/
            $('.son1').mouseover(mouseover);
            $('.son2').mouseover(mouseover);
        });
    </script>
</head>
<body>
<div class="father">
    <div class="son1">
        我是一段没有灵魂的文字,我只是为了给你看看我是怎么溢出隐藏的,不好意思了,哈~~~
    </div>
    <div class="son2">
        我不会溢出隐藏的
    </div>
</div>
</body>
</html>

--------------------------------代码结束----------------------------

效果如下,虽然给son1和son2都注册了同样的事件,但是由于只有son1文字溢出隐藏,所以只有son1增加了title属性

当然title属性只是为了方便写的,你也可以自己写一个tip组件生成更好看的提示

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值