// 富文本省略号 function richTextEllipsis(index = 0) { // 1.获取容器的高度---》220 // 判断p的内容高度是否大于剩余的高度,否则,就用总高度-p的真实高度(含padding) // 2.循环获取每一个p标签的高度 ---》230 // 3.容器高度-p的高度,得到剩余高度,如果当前p的高度大于剩余高度, // 就。。。,后面的p直接去掉 var _richText = $('.rich-text').eq(index) var _cH = _richText.height() // 容器总高度 var _syH = _cH // 剩余高度 var _pIns = _richText.find('.real-text').children('p') // 所有的p标签 var _pLen = _pIns.length var _isTrue = false for (var i = 0; i < _pLen; i++) { if (_isTrue) { _pIns.eq(i).text('') continue } var _pcH = _pIns.eq(i).outerHeight() // p标签的内容高度 if (_syH <= 0) { _pIns.eq(i).text('') _isTrue = true continue } // 内容高度是否大于剩余高度,如果大于剩余高度,就截取 if (_pcH > _syH) { var _pCont = '' var a = 0 while (_pcH > _syH) { a++ if (/^(.)\1+$/.test(_pIns.eq(i).text())) { break } if (a > 200) { break } _pIns.eq(i).text(_pIns.eq(i).text().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "...")); // 重新获取内容高度 _pcH = _pIns.eq(i).outerHeight() }; _isTrue = true } else { _syH -= _pIns.eq(i).outerHeight(true) } } }
标签:方案,省略号,text,syH,高度,pIns,var,文本,eq From: https://www.cnblogs.com/fanqieyuanzi/p/17151518.html