函數(shù)式編程
2019-08-02 14:59:24
如何計(jì)算DOM元素內(nèi)的文本行?我可以嗎?我想知道是否有辦法計(jì)算div中的行數(shù)。假設(shè)我們有這樣的div:<div id="content">hello how are you?</div>根據(jù)許多因素,div可以有一行,兩行,甚至四行文本。腳本有什么方法可以知道嗎?換句話說,DOM中是否有自動(dòng)中斷?
3 回答

弒天下
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
一種解決方案是使用腳本將每個(gè)單詞括在span標(biāo)記中。然后,如果給定span標(biāo)記的Y維度小于其前一個(gè)標(biāo)記的Y維度,則會(huì)發(fā)生換行。

慕工程0101907
TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
查看函數(shù)getClientRects(),它可用于計(jì)算元素中的行數(shù)。以下是如何使用它的示例。
var message_lines = $("#message_container")[0].getClientRects();
它返回一個(gè)javascript DOM對(duì)象。通過這樣做可以知道行數(shù):
var amount_of_lines = message_lines.length;
它可以返回每行的高度等等。通過將其添加到腳本中,然后查看控制臺(tái)日志,可以查看它可以執(zhí)行的所有操作。
console.log("");console.log("message_lines");console.log(".............................................");console.dir(message_lines);console.log("");
雖然有一些注意事項(xiàng)是它只有在包含元素是內(nèi)聯(lián)的情況下才有效,但是你可以使用塊元素包圍包含內(nèi)聯(lián)元素來控制寬度,如下所示:
<div style="width:300px;" id="block_message_container"><div style="display:inline;" id="message_container">..Text of the post..</div></div>
雖然我不建議硬編碼這樣的風(fēng)格。這只是為了舉例。
添加回答
舉報(bào)
0/150
提交
取消