Javascript 溢出:隐藏。在js/jquery中,比较隐藏文本和可见文本
如果我有一个如下所示的overflow:hidden容器,有没有办法通过js/jquery找出哪些文本是可见的,哪些文本是隐藏的Javascript 溢出:隐藏。在js/jquery中,比较隐藏文本和可见文本,javascript,jquery,Javascript,Jquery,如果我有一个如下所示的overflow:hidden容器,有没有办法通过js/jquery找出哪些文本是可见的,哪些文本是隐藏的 div{ height:2.4em; line-height:1.2em; overflow:hidden; width:100px; background:pink; } <div> I am some text and more text and so on and on I just keep
div{
height:2.4em;
line-height:1.2em;
overflow:hidden;
width:100px;
background:pink;
}
<div>
I am some text and more text and so on and on I just keep going.
</div>
div{
高度:2.4em;
线高:1.2米;
溢出:隐藏;
宽度:100px;
背景:粉红色;
}
我是一些文字和更多的文字等等,我只是继续。
我只知道我有什么:
<div>
<span>I am some text and more text and so on and on I just keep going.</span>
</div>
我是一些文字和更多的文字等等,我只是继续。
然后删除字母,直到span大于div:p(您可以使用
元素。offsetHeight
和元素。offsetWidth
或$(元素)。height
和$(元素)。width
)考虑到包装和行高,棘手的部分是找出一个单词的适合程度。编写了一个小jquery插件。这是片段
$.fn.visibleText = function () {
// Get the currents
var currWidth = this.width();
var currHeight = this.height();
var htmlContent = this.html();
var lineHeight = parseFloat(this.css("lineHeight"), 10);
// Need to calculate the number of lines visible
// as currHeight < numLines * lineHeight, at times
// Eg: Try changing height to 4.4em and width to 110px
var numLines = Math.round(currHeight / lineHeight);
var actualHeight = (numLines * lineHeight);
// Clearing
this.html("");
this.height("initial");
// Push to HTML until hitting the terminating conditions
// currWordLength is required since wrapping of a word could push
// to the line
var vContent = "",
currWordLength = 0;
while (this.height() <= actualHeight) {
var currChar = htmlContent[vContent.length];
vContent += currChar;
this.html(vContent);
if (currChar === " ") {
currWordLength = 0;
}
currWordLength++;
if (htmlContent.length === vContent.length) {
currWordLength = 0;
break;
}
}
var visible = vContent.substring(0, vContent.length - currWordLength);
// Revert to originals
this.height(currHeight);
this.html(htmlContent);
return {
visible: visible,
hidden: htmlContent.substring(visible.length, htmlContent.length)
}
};
$.fn.visibleText=函数(){
//了解潮流
var currWidth=this.width();
var currHeight=this.height();
var htmlContent=this.html();
var lineHeight=parseFloat(this.css(“lineHeight”),10);
//需要计算可见的行数
//有时,当currenheight