div宽高是100,100, 给的字符串是任意的很长的字符串,用原生js来取到该截断的位置,使截断位置
之前的字符串正好充满这个div。
文本的字体和大小可以获知。
我目前是用二分法来试探,就是插入一半,测一下插入的段落的offsetHeight,如还是超过100,则继
续截,否则添加下一半内容进来继续测试高度。但这种做好对DOM操作太多,性能太差。我觉得用字体
的宽度和行高去计算是不可行的。
跪求高人帮我解决一下这个问题。
我还要获取截断后半部分字符串啊。。
想不出什么办法来,不过,不太明白你的用处是什么,是否CSS中的 overflow:hidden; 可以满足你的需求?
在指定DIV宽高的情况下,这个属性可以确保内容不会超出和撑开DIV
楼上回答者姓名,跟我名字前两个字一样,让我回答我也这么回答?其实也不知道楼主需求,难道用js获取字的宽度和高度?
我真叫丁学……
@丁学: 我也真比你多一个字“书”
你这的这个问题,好像不用截取吧,文字会自动换行的。
让文字自动隐藏就好了,多了的反正都不需要看到了,
<div style="overflow:hidden;"></div>
这样看看。
都说了不需要截取了,你还截取干嘛,要不你就只能计算文字宽和行高了
同意楼上意见,使用overflow:hidden 和word-break:all-break 就不需要再去计算或获取内容的所占位置的高度与宽度了。。。
这样试一下吧,用截取字符串的方法做吧,固定好一个div中一共多少行,适当的设置行高,每行多少个字符,截取字符串时,一个汉字表示两个字符,其每行字符不超过DIV的宽度,这样就可以将剩下的部分截取出来了。同样,也可以加上以上的样式进行设置。。。
其实,overflow:hidden;已经够用了,不知道楼主为什么有这样变态的需求?
如果说div的宽度和高度都确定,字体大小行距都确定,那么可以先知道这个div里面能装多少字符处滚动条,那么你就知道这个div里面可以刚好不出滚动条的值吧!哈哈
难道是subString(0,300)这样。。。
谢谢大家回复,我已经用js的二分法实现了。虽然有点麻烦,但截断位置找的很精确,而且性能也还行
楼主能把方法贡献出来吗?