div超出多行显示时用省略号代替,鼠标触碰显示完整的内容

该代码示例展示了如何使用JavaScript和CSS处理文本溢出问题,当文本超过设定的宽度时,自动省略并提供鼠标悬停显示全部内容的功能。关键点包括line-height、word-break属性以及利用jQuery获取和操作DOM元素。
摘要由CSDN通过智能技术生成
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="js/jquery.min.js"></script>
        <style>
            .news-txt p {
                width: 100px;
                word-break: break-all;
                line-height: 19px;
            }
        </style>
    </head>
    <body>
        <div class="news-txt">
            <p>发就开始放假啊时间的话飞机撒打发卡合计收到回复束带结发回家撒等哈飞机萨达合计粉红色大家啊很费劲啊三打哈飞机三打哈就发哈手机金黄色的接化发收款方哈萨</p>
        </div>
        <script>
            function overflow() {
                var dom = document.querySelector('.news-txt p');
                console.log(dom.innerText);
                var text = dom.innerText;
                for (var i = 0; i < text.length; i++) {
                    var stext = text.substring(0, i + 1);
                    dom.innerText = stext;
                    var width = dom.offsetHeight;
                    if (width > 38) { // 默认行高设置的是19,这里代表超出两行就省略
                        stext = text.substring(0, i - 3) + '...';
                        dom.innerText = stext;
                        dom.setAttribute('title', text);
                        break;
                    }
                }
            }
            overflow()
        </script>
    </body>
</html>

效果图:

注:

鼠标触碰显示全部内容是通过给title属性赋值实现的;

需要设置宽度,高度一定不能设置;

line-height: 19px,word-break: break-all属性是必要的,行高可以自行设置大小;

p标签不是必要的,可以删掉,删掉后相应的css和js需要同步修改;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JS文本超出部分用省略号替代的需求经常在网页设计中出现。这样做可以有效地减少页面上冗长的文本显示,并给用户一个快速浏览的体验。一种常见的解决方案是使用CSS的文本溢出属性,结合JavaScript的悬停事件来实现。 首先,在CSS中定义文本溢出样式。使用`text-overflow:ellipsis;`属性可以让超出部分的文本显示省略号,同时,设置`white-space: nowrap;`属性可以防止文本换行。 接下来,在HTML中声明需要添加省略号的文本元素,并添加一个自定义的class名称,例如`ellipsis-text`。 然后,在JavaScript中编写相关的处理逻辑。首先,获取所有带有class名称为`ellipsis-text`的元素。然后,对每个元素绑定悬停事件,当鼠标悬停在文本上时,将元素的`title`属性设置为元素的全部文本内容,以显示完整的文本。当鼠标离开时,将`title`属性重置为空,以显示省略号。 下面是一个简单的实现示例: HTML部分: ```html <div class="ellipsis-text">这是一个超出部分用省略号替代的示例文本。</div> ``` CSS部分: ```css .ellipsis-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } ``` JavaScript部分: ```javascript var elements = document.getElementsByClassName('ellipsis-text'); Array.prototype.forEach.call(elements, function(element) { element.addEventListener('mouseover', function() { element.title = element.innerText; }); element.addEventListener('mouseout', function() { element.title = ''; }); }); ``` 通过以上步骤,当鼠标悬停在文本上时,会显示全部的文本内容鼠标离开时,文本又会被替换为省略号,从而实现了需求的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值