最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用原生js統(tǒng)計文本行數(shù)的簡單示例

 更新時間:2016年08月19日 15:32:52   投稿:daisy  
這篇文章我們來看看如何利用原生的JavaScript實現(xiàn)統(tǒng)計文本的行數(shù),代碼實現(xiàn)起來很簡單,有需要的可以參考借鑒。

前言

在開發(fā)的時候會遇到這種情況,只顯示兩行,如果超過兩行,則顯示一個“顯示更多”的按鈕,點擊按鈕來顯示剩余行的內(nèi)容。有個 jQuery 的插件 loadingDots 專門實現(xiàn)了這個功能。不過今天這里我們要用原生的Javascript來實現(xiàn),要實現(xiàn)這個需求,最關(guān)鍵的是要確定這個容器內(nèi)文本的行數(shù),得到行數(shù)后,修改元素高度,并確定是否顯示加載按鈕。

window.getComputedStyle()

要使用原生 JavaScript 代碼獲取一個元素的各個 style 屬性,使用 window.getComputedStyle() 是必然的。它可以返回一個 HTML 元素在瀏覽器中真正顯示時的各個樣式——當然,有些樣式會被瀏覽器給屏蔽,比如,你要獲取一個鏈接的顏色,并準備通過顏色來判斷用戶是否訪問過某個地址,那肯定是不行的。

該方法返回的,是一個樣式鍵值對,是 CSSStyleDeclaration 的實例。各屬性索引名沒有 - ,且采用駝峰命名法。比如 lineHeight 。

行數(shù) = 整體高度 / 行高

整體高度通過 height 可以獲取。行高可以通過 lineHeight 獲取,將其結(jié)果再取整即可得到行數(shù)。

但有個問題,如果沒有針對一個元素設(shè)置 line-height 值,則其默認值為 normal ,這個值在桌面瀏覽器中通常是 1.2 ,但還與字體有關(guān)。因此,最好是對需要計算行數(shù)的元素設(shè)置一下 line-height 值。

一個簡單的實現(xiàn)如下:

function countLines(ele) {
 var styles = window.getComputedStyle(ele, null);
 var lh = parseInt(styles.lineHeight, 10);
 var h = parseInt(styles.height, 10);
 var lc = Math.round(h / lh);
 console.log('line count:', lc, 'line-height:', lh, 'height:', h);
 return lc;
}

完整代碼示例

<!DOCTYPE html>
<html>
<head>
 <title>Line Count</title>
 <style type="text/css">
  p {
   line-height: 1.3em;
  }
 </style>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head>
<body>
<p id="target">She just made having a baby look lovely. Everything is white and she always has a fresh blueberry pie that's steaming and scones and clotted cream and she's reading The Old Man and the Sea and her little boy is rolly with bonnets. It's amazing, and I thought this is lovely. My kid is like playing with like explosive devices. I don't know where she's found them, like sticking them in our dog's ear. She already knows how to dry wall cause she puts holes in the wall.<br />
“今天的中國人一如當年的德國人,沉迷于‘崛起'幻覺,習(xí)慣于聽信他人的吹捧,還想當然地認為只要中國繼續(xù)保持經(jīng)濟增長,不僅未來的經(jīng)濟總量超越‘世界老大'美國可以期待,中國實現(xiàn)全面復(fù)興也將是囊中之物?!鄙虾M鈬Z大學(xué)國際關(guān)系與公共事務(wù)學(xué)院教授程亞文在其新著《大國戰(zhàn)略力》中尖銳地指出中國現(xiàn)下有不少人陷入了“盛世”幻覺,并沒有意識到在經(jīng)濟總量的背后,中國其實還是一個極為落后的國家。世界上還沒有一個大國是在風(fēng)平浪靜中興起的,中國的新一輪文明復(fù)興也將充滿風(fēng)險和曲折。防止國家崩潰、解體或衰敗應(yīng)該成為中國國家戰(zhàn)略的重中之重。染上“軟乎乎的幸福主義”只會讓一個國家變得脆弱。
</p>
<p>行數(shù):<span id="shower"></span></p>
改變窗口大小,自動計算
<button onclick="countLines()">立刻計算</button>

<script type="text/javascript">
var target = document.getElementById('target');
var shower = document.getElementById('shower');

function countLines(ele) {
 var styles = window.getComputedStyle(ele, null);
 var lh = parseInt(styles.lineHeight, 10);
 var h = parseInt(styles.height, 10);
 var lc = Math.round(h / lh);
 console.log('line count:', lc, 'line-height:', lh, 'height:', h);
 return lc;
}

function change() {
 shower.innerHTML = countLines(target);
}
window.onresize = change;
change();
</script>
</body>
</html>
[/html]

總結(jié)

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家使用Javascript能有所幫助。如果有疑問可以留言討論。

相關(guān)文章

  • 在Javascript里訪問SharePoint列表數(shù)據(jù)的實現(xiàn)方法

    在Javascript里訪問SharePoint列表數(shù)據(jù)的實現(xiàn)方法

    在進行SharePoint訂制的時候經(jīng)常會遇到開發(fā)手段受限制的問題,比如通常公司都會限制服務(wù)器的訪問以及部署,很多開發(fā)都只能夠在客戶端來進行
    2011-05-05
  • IE和Firefox之間在JavaScript語法上的差異

    IE和Firefox之間在JavaScript語法上的差異

    這篇文章主要為大家詳細介紹了IE和Firefox之間在JavaScript語法上的差異,在JavaScript語法上不同的7個方面,感興趣的小伙伴們可以參考一下
    2016-04-04
  • JavaScript字符串檢索字符的方法

    JavaScript字符串檢索字符的方法

    這篇文章主要為大家詳細介紹了JavaScript字符串檢索字符的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • BootStrap 圖片樣式、輔助類樣式和CSS組件的實例詳解

    BootStrap 圖片樣式、輔助類樣式和CSS組件的實例詳解

    這篇文章主要介紹了BootStrap 圖片樣式、輔助類樣式和CSS組件的實現(xiàn)代碼,圖文并茂介紹的非常詳細,需要的朋友參考下吧
    2017-01-01
  • 在線演示常用javascript特效

    在線演示常用javascript特效

    圖形顯示特效鼠標驅(qū)動圖片變化隨機顯示banner圖片隨意移動圖片定期消失字符連續(xù)消隱文字不停變色JavaScript容錯...圖片循環(huán)顯現(xiàn)QQ菜單生成器圖形顯示特效連續(xù)滾動的圖片圖片水中倒影純JavaScript時鐘圖片翻滾導(dǎo)航星星滿天閃爍左側(cè)的極酷...
    2008-04-04
  • 純JS代碼實現(xiàn)氣泡效果

    純JS代碼實現(xiàn)氣泡效果

    js氣泡效果,在項目需求中經(jīng)常遇到。今天小編把大概實現(xiàn)步驟分享到腳本之家平臺,感興趣的朋友可以參考下
    2016-05-05
  • 淺談Rx響應(yīng)式編程

    淺談Rx響應(yīng)式編程

    在學(xué)習(xí)Rx編程的過程中,理解Observable這個概念至關(guān)重要,常規(guī)學(xué)習(xí)過程中,通常需要進行多次碰壁才能逐漸開悟。這個有點像小時候?qū)W騎自行車,必須摔幾次才能掌握一樣。當然如果有辦法能言傳,則可以少走一些彎路,盡快領(lǐng)悟Rx的精妙
    2021-06-06
  • JavaScript中將number轉(zhuǎn)為string的5種方法

    JavaScript中將number轉(zhuǎn)為string的5種方法

    這篇文章主要給大家介紹了關(guān)于JavaScript中將number轉(zhuǎn)為string的5種方法,在JavaScript的值類型轉(zhuǎn)換中,最常發(fā)生的就是string與number這兩種類型值之間的相互轉(zhuǎn)換,需要的朋友可以參考下
    2023-07-07
  • JavaScript深拷貝和淺拷貝概念與用法實例分析

    JavaScript深拷貝和淺拷貝概念與用法實例分析

    這篇文章主要介紹了JavaScript深拷貝和淺拷貝概念與用法,結(jié)合實例形式較為詳細的分析了javascript深拷貝與淺拷貝的概念、原理、用法及相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • JS刷新父窗口的幾種方式小結(jié)(推薦)

    JS刷新父窗口的幾種方式小結(jié)(推薦)

    下面小編就為大家?guī)硪黄狫S刷新父窗口的幾種方式小結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11

最新評論

新乐市| 成安县| 邮箱| 和平区| 黄山市| 西华县| 冷水江市| 正定县| 丹凤县| 东山县| 九江县| 泉州市| 巧家县| 郴州市| 洪湖市| 三门峡市| 延津县| 淮安市| 龙口市| 宿松县| 永春县| 探索| 荃湾区| 托里县| 同德县| 麟游县| 长岛县| 循化| 贵南县| 高密市| 南投市| 大英县| 霍邱县| 碌曲县| 临清市| 乌什县| 肇源县| 来宾市| 沭阳县| 资溪县| 阿拉善右旗|