當(dāng)前位置:首頁(yè) >  站長(zhǎng) >  編程技術(shù) >  正文

JavaScript 如何計(jì)算文本的行數(shù)的實(shí)現(xiàn)

 2020-10-28 14:12  來(lái)源: 腳本之家   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

這篇文章主要介紹了JavaScript 如何計(jì)算文本的行數(shù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

需求:根據(jù)行數(shù)決定是否限制展開(kāi)和收起。

思路:用2個(gè)塊統(tǒng)計(jì)行高,一個(gè)不加高度限制用來(lái)統(tǒng)計(jì)行數(shù)(css隱藏),一個(gè)加高度限制用來(lái)顯示(加高度限制會(huì)導(dǎo)致統(tǒng)計(jì)行數(shù)不準(zhǔn))

要想知道文本的行數(shù),那就需要知道文本的總高度和每一行的高度,總高度除以行高就是行數(shù)。當(dāng)然總高度的計(jì)算必須是文字所在的 DOM 沒(méi)有對(duì)高度的限制,隨著文本的增加 DOM 要隨之變高才行;最后還要考慮 DOM 的樣式padding和margin對(duì)高度的影響。這樣一來(lái)我們就可以計(jì)算出文本的行數(shù)了。總結(jié)一下我們需要如下幾步:

克隆文本所在的 DOM;

清除 DOM 的高度限制;

獲取 DOM 的行高和高度;

計(jì)算行數(shù);

去除克隆的 DOM。

相關(guān)代碼

 document.getElementById("noticeContent").innerText = str;//展示的塊

 document.getElementById("noticeContent2").innerText = str;//計(jì)算行高的塊

 this.$nextTick(() => {

 let noticeDom = document.getElementById("noticeContent2");

 console.log(noticeDom);

 let style = window.getComputedStyle(noticeDom, null);

 let row = Math.ceil(

 Number(style.height.replace("px", "")) /

 Number(style.lineHeight.replace("px", ""))

 );//總行高 / 每行行高

 console.log("noticeDom===>", style.height, style.lineHeight);

 console.log("rowwwww", row);

 if (row > 2) {//超過(guò)2行則顯示展開(kāi)和收起

 this.showOmit = true;

 this.showOpen = true;

 } else {

 this.showOpen = false;

 }

 });

到此這篇關(guān)于JavaScript 如何計(jì)算文本的行數(shù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)JavaScript 計(jì)算文本行數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

來(lái)源:腳本之家

鏈接:https://www.jb51.net/article/195571.htm

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
javascript
java

相關(guān)文章

  • 參加Java培訓(xùn)班有用嗎?這個(gè)問(wèn)題大家要怎么看待

    在眾多的編程培訓(xùn)中,Java軟件開(kāi)發(fā)作為老牌兒的編程主流,從發(fā)展前景上看,無(wú)論是現(xiàn)在還是將來(lái),依然會(huì)持續(xù)火爆的狀態(tài)。對(duì)于當(dāng)下年輕人想要快速的掌握這項(xiàng)技術(shù),進(jìn)入到這個(gè)行業(yè),最為熱議的話題是“參加Java培訓(xùn)班有用嗎”。小編可以肯定的回答,是有用的,學(xué)習(xí)的根據(jù)來(lái)自于興趣,如果大家是真的熱愛(ài)這行,在加上專

    標(biāo)簽:
    java
  • 動(dòng)力節(jié)點(diǎn)南京Java培訓(xùn)口碑教學(xué),滿分教學(xué)就業(yè)體驗(yàn)

    江南佳地,邂逅金陵,動(dòng)力節(jié)點(diǎn)南京Java培訓(xùn)校區(qū),為長(zhǎng)三角地帶的發(fā)展注入專業(yè)Java教培力量,動(dòng)力節(jié)點(diǎn)自09年成立至今,專注Java培訓(xùn)教學(xué),一直秉承著“為學(xué)員服務(wù)”的唯一教育理念,堅(jiān)持口碑教學(xué),被業(yè)界稱為“口口相傳的Java培訓(xùn)黃埔軍?!薄?/p>

    標(biāo)簽:
    java
    java培訓(xùn)
  • 動(dòng)力節(jié)點(diǎn)廣州Java培訓(xùn),為大家撐起一個(gè)IT的未來(lái)

    廣州動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu),一直以來(lái)專注Java的教學(xué),深耕教育,穩(wěn)扎穩(wěn)打,在行業(yè)具有“口口相傳的黃埔軍?!敝Q,有句話說(shuō)的好“沒(méi)有量變的積累,哪來(lái)質(zhì)變的飛躍”動(dòng)力節(jié)點(diǎn)和你一起,扎扎實(shí)實(shí)做教育,你們?cè)鷮?shí)實(shí)學(xué)本領(lǐng),時(shí)刻準(zhǔn)備著,有朝一日,風(fēng)自會(huì)來(lái)。

    標(biāo)簽:
    java
    在線培訓(xùn)
  • 動(dòng)力節(jié)點(diǎn)成都Java培訓(xùn)招生源于口碑,業(yè)界巨頭

    為了能夠搭乘互聯(lián)網(wǎng)的快車(chē),實(shí)現(xiàn)人生的逆轉(zhuǎn),不少年輕人選擇動(dòng)力節(jié)點(diǎn)成都Java培訓(xùn),動(dòng)力節(jié)點(diǎn)作為Java職業(yè)培訓(xùn),沒(méi)有理由不去擔(dān)起這份沉甸甸的信任,所以,自09年創(chuàng)立起,一直專注于Java的教學(xué),將全部的資源

  • 參加動(dòng)力節(jié)點(diǎn)北京Java培訓(xùn)會(huì)讓學(xué)者更加有信心

    通過(guò)Java培訓(xùn)出來(lái)的同學(xué)與沒(méi)參加過(guò)培訓(xùn)的同學(xué)差距還是有不少的,同學(xué)一直以來(lái)對(duì)參加培訓(xùn)都保持著猶豫的心態(tài),其實(shí)大家了解后會(huì)發(fā)現(xiàn),不管是對(duì)零基礎(chǔ)還是有編程認(rèn)知的同學(xué)來(lái)講,參與更加密集、系統(tǒng)化的培訓(xùn)

熱門(mén)排行

信息推薦