国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

js實(shí)現(xiàn)一行半文本的截取

這篇具有很好參考價(jià)值的文章主要介紹了js實(shí)現(xiàn)一行半文本的截取。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最近遇到一個(gè)需求是要在第二行的中間截取文本,因?yàn)樵诤竺娴觅N一個(gè)圖標(biāo),所以這種情況用常規(guī)的css截取文本有點(diǎn)難處理。于是在上網(wǎng)查閱后發(fā)現(xiàn)了幾個(gè)方法:第一種是用偽元素加定位,把.;11..蓋在文字的上面;第二種就是用js來(lái)實(shí)現(xiàn)了。

首先貼下常規(guī)的css截取文本的代碼,這種在大多數(shù)情況都可以適用

1、單行文本的溢出隱藏

white-space: nowrap;// 設(shè)置文字在一行顯示,不能換行
overflow: hidden;// 文字長(zhǎng)度超出限定寬度時(shí)隱藏溢出的內(nèi)容
text-overflow: ellipsis;//  當(dāng)文字溢出時(shí),顯示...來(lái)代表溢出的文本

2、多行文本的溢出隱藏

-webkit-line-clamp: 2;// 用來(lái)限制在一個(gè)塊元素顯示的文本的行數(shù),2 表示最多顯示 2 行。
-webkit-box-orient: vertical;// 和 1 結(jié)合使用 ,設(shè)置或檢索伸縮盒對(duì)象的子元素的排列方式
overflow: hidden;
text-overflow: ellipsis;

然后開始說(shuō)下如何用js來(lái)實(shí)現(xiàn)

思路就是通過(guò)判斷字符串的長(zhǎng)度來(lái)找到截取的位置,然后用slice()方法獲取從0到指定位置的字符,后面的字符都切掉,再補(bǔ)一個(gè) ... 來(lái)實(shí)現(xiàn)。

noMoreWord = (text) => {
    let newText = text
    if(text.length > 39) newText = text.slice(0, 39)
    return newText 
}

但是這樣處理其實(shí)是有漏洞的,因?yàn)樵O(shè)計(jì)稿是全中文的時(shí)候在一行半溢出隱藏,但是實(shí)際情況肯定會(huì)有英文字母、數(shù)字、英文符號(hào)出現(xiàn)的,而這些字符占的位置和中文占的位置是不一樣的。所以在這里需要根據(jù)先獲取字符的總字節(jié),然后通過(guò)字節(jié)的長(zhǎng)度來(lái)決定需不需要隱藏。下面是優(yōu)化后的代碼

  //判斷字符串為中文字符串還是英文字符串,中文字符、符號(hào)占兩個(gè)字符,英文字符、符號(hào)和數(shù)字占一個(gè)字符
  getStrLength = (str) => {
    let len = 0
    for(let i = 0; i < str.length; i++) {
      //中文字符
      if (str.charCodeAt(i) > 127) {
        len += 2 
      } else {
        len++
      }
    }
    return len
  }

  //字符串截取
  noMoreWord = (text, length, color='#000000') => {
    let newText = text;
    //字符長(zhǎng)度大于參數(shù)length的,把后面多余的字符截取掉,替換為...。
    if (getStrLength(text) > length * 2) {
      newText = <span>{text.slice(0, length)}<span style={{color: color}}>...</span</span>;
    }
    return newText
  };

?注意noMoreWord()中的length是你傳入的長(zhǎng)度,而getStrLength()中返回的是這串文本字節(jié)的長(zhǎng)度,所以在判斷時(shí)需要把length*2。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-692106.html

到了這里,關(guān)于js實(shí)現(xiàn)一行半文本的截取的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 前端 富文本編輯器原理——從javascript、html、css開始入門

    前端 富文本編輯器原理——從javascript、html、css開始入門

    大家好,我是yma16,本文分享關(guān)于前端 富文本編輯器原理——從javascript、html、css開始。 富文本編輯器 富文本編輯器是指具有格式化文本和圖像編輯功能的文本編輯器 參考文檔:https://w3c.github.io/selection-api/#abstract 全局屬性 contenteditable 是一個(gè)枚舉屬性,表示元素是否可被用

    2024年02月08日
    瀏覽(29)
  • jQuery.js - 前端必備的Javascript庫(kù)

    jQuery.js - 前端必備的Javascript庫(kù)

    作者: WangMin 格言: 努力做好自己喜歡的每一件事 jQuery.js 是什么? jQuery是一個(gè)快速簡(jiǎn)潔、免費(fèi)開源易用的JavaScript框架, 倡導(dǎo)寫更少的代碼,做更多的事情 。它封裝JavaScript常用的功能代碼,提供了一種簡(jiǎn)便的JavaScript設(shè)計(jì)模式,以及我們開發(fā)中常用到的操作DOM的API,優(yōu)化HTML文

    2024年02月05日
    瀏覽(90)
  • 已實(shí)現(xiàn):JS如何根據(jù)視頻的http(s)地址,來(lái)截取幀圖片,并實(shí)現(xiàn)大圖壓縮的功能

    已實(shí)現(xiàn):JS如何根據(jù)視頻的http(s)地址,來(lái)截取幀圖片,并實(shí)現(xiàn)大圖壓縮的功能

    現(xiàn)在,我們已經(jīng)有了視頻的http地址,我們?cè)趺唇厝瑘D片呢?我以Vue為基礎(chǔ)架構(gòu),來(lái)寫寫代碼。 1、先寫布局,先得有video,然后得有canvas 界面上很簡(jiǎn)單,就一個(gè)視頻容器,一個(gè)畫布canvas還不讓它顯示,還有一個(gè)就是截取幀圖片了。 接下來(lái)是js關(guān)鍵方法部分: 以上的代碼就是

    2024年01月17日
    瀏覽(21)
  • 前端:JS:將圖片轉(zhuǎn)為二進(jìn)制與其他文本傳入后端

    在前端,可以將圖片轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),并將其與其他文本字符串一起發(fā)送到后端。一種常見的方法是將所有數(shù)據(jù)組合為一個(gè) FormData 對(duì)象,然后通過(guò) AJAX 或 Fetch API 將其發(fā)送給后端。以下是一個(gè)示例: 解釋 : 當(dāng)文件輸入框內(nèi)容發(fā)生變化時(shí),會(huì)觸發(fā) change 事件。然后,它會(huì)讀

    2024年04月26日
    瀏覽(34)
  • web前端框架JS學(xué)習(xí)之JavaScript類型轉(zhuǎn)換

    web前端框架JS學(xué)習(xí)之JavaScript類型轉(zhuǎn)換

    vascript有多種數(shù)據(jù)類型,如字符串、數(shù)字、布爾等,可以通過(guò)typeof語(yǔ)句來(lái)查看變量的數(shù)據(jù)類型。數(shù)據(jù)類型轉(zhuǎn)換就是數(shù)據(jù)類型之間相互轉(zhuǎn)換,比如把數(shù)字轉(zhuǎn)成字符串、把布爾值轉(zhuǎn)成字符串、把字符串轉(zhuǎn)成數(shù)字等,這在工作也是經(jīng)常碰到的。 本期我們就給大家說(shuō)說(shuō)web前端框架JS學(xué)

    2024年02月10日
    瀏覽(90)
  • 【前端靈魂腳本語(yǔ)言JavaScript⑤】——JS中數(shù)組的使用

    【前端靈魂腳本語(yǔ)言JavaScript⑤】——JS中數(shù)組的使用

    ?? 作者: 阿偉 ?? 個(gè)人主頁(yè): Flyme awei ?? 希望大家多多支持??一起進(jìn)步呀! ?? 文章對(duì)你有幫助??關(guān)注?點(diǎn)贊??收藏?? 第一種: var 數(shù)組名 = new Array(); 創(chuàng)建一個(gè)空數(shù)組 第二種: var arr2 = new Array(10); 創(chuàng)建一個(gè)定長(zhǎng)為10的數(shù)組 第三種 var arr3 = new Array(a,b,c); 創(chuàng)建時(shí)直接指定元素值

    2023年04月08日
    瀏覽(111)
  • WPS的JS宏如何實(shí)現(xiàn)全文件路徑字符串中截取文件名(excel)

    WPS的JS宏如何實(shí)現(xiàn)全文件路徑字符串中截取文件名(excel)

    從全文件路徑的字符串中,截取文件名稱,例如: 全文件路徑字符串為:C:WindowsSystem32driversacpi1.sys 需要截取文件名:acpi1.sys 方法如下: 1、簡(jiǎn)單的方式:把全文件路徑字符串拷貝,放置在Excel表的C列。鼠標(biāo)點(diǎn)擊D列后,輸入如下公式: =RIGHT(C2,LEN(C2)-FIND(\\\"@\\\",SUBSTITUTE(C2,\\\"\\\",\\\"

    2024年04月27日
    瀏覽(101)
  • javascript實(shí)現(xiàn)一鍵復(fù)制文本功能

    javascript實(shí)現(xiàn)一鍵復(fù)制文本功能

    最近小編做了一鍵復(fù)制文本的需求(功能如下圖所示)。本文簡(jiǎn)單介紹兩種 javascript 實(shí)現(xiàn)文本復(fù)制(將文本寫入剪貼板)的方法—— navigator.clipboard 和 document.execCommand() ,大家可以根據(jù)需求特點(diǎn)選用。 1. navigator.clipboard 方法匯總 方法 用途 Clipboard.readText() 復(fù)制剪貼板里的文本

    2024年02月15日
    瀏覽(22)
  • 〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的「數(shù)組」

    〖大前端 - 基礎(chǔ)入門三大核心之JS篇?〗- JavaScript 的「數(shù)組」

    當(dāng)前子專欄 基礎(chǔ)入門三大核心篇 是免費(fèi)開放階段 。 推薦他人訂閱,可獲取扣除平臺(tái)費(fèi)用后的35%收益,文末名片加V! 說(shuō)明:該文屬于 大前端全棧架構(gòu)白寶書專欄, 目前階段免費(fèi)開放 , 購(gòu)買任意白寶書體系化專欄可加入 TFS-CLUB 私域社區(qū)。 福利:除了通過(guò)訂閱\\\"白寶書系列專

    2024年02月04日
    瀏覽(23)
  • 【前端|Javascript第5篇】全網(wǎng)最詳細(xì)的JS的內(nèi)置對(duì)象文章!

    【前端|Javascript第5篇】全網(wǎng)最詳細(xì)的JS的內(nèi)置對(duì)象文章!

    前言 在當(dāng)今數(shù)字時(shí)代,前端技術(shù)正日益成為塑造用戶體驗(yàn)的關(guān)鍵。我們?cè)陂_發(fā)中需要用到很多js的內(nèi)置對(duì)象的一些屬性來(lái)幫助我們更快速的進(jìn)行開發(fā)?;蛟S你是剛踏入前端領(lǐng)域的小白,或者是希望深入了解內(nèi)置對(duì)象的開發(fā)者,不論你的經(jīng)驗(yàn)如何,本篇博客都將給你詳細(xì)的講解

    2024年02月12日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包