1. 程式人生 > >js超出文字省略號

js超出文字省略號

轉自:http://www.jb51.net/article/88566.htm

javascript超過容器後顯示省略號效果

在實際的專案中,由於文字內容的長度不確定性和頁面佈局的固定性,難免會出現文字內容超過div(或其他標籤,下同)區域的情況,此時比較好的做法就是當文字超過限定的div寬度後自動以省略號(…)顯示,這樣,按照習慣,人們都會知道這兒有文字被省略了。css中有個屬性叫做text-overflow:ellipsis;比如使用css可以這樣寫:

{width:27em; white-space:nowrap; text-overflow:ellipsis; -o-text-overflow:ellipsis; overflow:hidden;}僅在Firefox火狐瀏覽器下無法實現文字溢位省略號表示,其文字直接從中間咔掉了,我這邊不講用css怎麼樣來實現這樣的,具體的css實現可以自己百度去,我這邊最主要的是講怎麼樣用JS來實現,怎麼樣通過JS寫一個簡單的元件,我直接呼叫JS的初始化方法就可以實現掉!比如如下效果:

後面的點點點 來提示使用者有更多的內容未顯示完成這樣的效果!

先廢話少說!首先來看看我做的demo效果,就能明白到底是個什麼樣的效果!

想看效果,請點選我!ok?

一: 先來看看元件的配置項:如下:

targetCls

null,    目標要擷取的容器 必填項 預設為null

limitLineNumber 1,     要顯示的行數 預設為1行

type '...',      超過了容器長度 顯示的type 預設為省略號

lineHeight  18,       dom節點的行高 預設行高為18

isShowTitle true ,      title 是否需要title來顯示所有的內容 預設為true

isCharLimit false     根據字元的長度來限制 超過顯示省略號

maxLength 20        預設長度為20 超過字元20後 顯示省略號

二:分析

1.  首先來講講此元件:支援2種方式來擷取字串,第一:根據字元的長度來擷取,超過後顯示省略號,比如我這樣呼叫:

new MultiEllipsis({ 
"targetCls" : '.text8', 
"isCharLimit":true, 
"maxLength": 18

  });

這樣初始化的意思是說,isCharLimit為true是指用字元的個數來擷取,最大的長度maxLength為18,這樣初始化,因為程式碼裡面會首先判斷如果isCharLimit為true的話,就直接按照字元的個數來擷取,比如如下程式碼:

2. 第二種是根據多少行數及高度來擷取的,比如預設配置項的行高是18,如果我想顯示2行,那也就是說高度h = 18*2, 假如容器的高度是100,那麼擷取的方法是:

使用 (100 - type的長度 - 1)  是否大於 18×2,如果大於的話,繼續擷取,否則的不擷取,且顯示省略號效果!如下程式碼:

缺點:但是使用行高擷取的話,如果資料比較少的話,是可以的,但是如果資料很多的話,比如高度為500畫素或者更多的話,那麼相對來說會影響效能的,因為他們每次都要計算n次(n為迴圈呼叫函式多的意思)。

JS所有的程式碼如下:

複製程式碼 

?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163

相關推薦

js超出文字省略號

轉自:http://www.jb51.net/article/88566.htmjavascript超過容器後顯示省略號效果在實際的專案中,由於文字內容的長度不確定性和頁面佈局的固定性,難免會出現文字內容超過div(或其他標籤,下同)區域的情況,此時比較好的做法就是當文字超過

JS控制文字只顯示兩行,超出部分顯示省略號

簡單記錄便於後續的工作和學習。 由於使用css控制文字只顯示多行,超出部分顯示省略號,存在一定的相容性問題,所以總結了一下網上一些大咖使用js實現控制行數的解決方案。 第一步:依次引入jquery.js+jquery.ellipsis.js+jquery.ellipsis.unobtrusive.js。

單行、多行文字超出顯示省略號

lock hit 單行 bsp pan over 省略號 span spl 單行 display:inline-block/ block;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;單行、多行文

table表格中文字超出顯示省略號

overflow ops nbsp wrap 標簽 內容 over -m hit 第一步: table {table-layout:fixed;}列寬由表格寬度和列寬度設定,不隨文字多少變化 第二步: td { white-space:nowrap;/*文本不會換行,文本會

文字超出省略號代替

adding gpo AC pos http init HA hidden sca <!DOCTYPE html> <html> <head> <meta http-equiv="Conte

微信小程序文字超出省略號

lan ima 文字 自動 class log 小程序 ellipsis sdn 我查資料的時候搜到這個博客 http://blog.csdn.net/u010168409/article/details/54429678 view{ overflow:hid

CSS 超出文字...省略號顯示

單行操作:先看程式碼(display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;)分別是什麼意思: text-overflow:ellipsis;表示文字超出用省略號代替 white-space:now

css控制文字超出顯示省略號

單行文字 先來簡單說一下單行文字超出顯示省略號的方法,大家基本都會了: Element { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } 含義什麼的在此就不額外贅述了

文字內容超出顯示省略號

display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; /*-webkit

web前端總結之文字超出顯示省略號

web前端總結之文字超出顯示省略號 當網頁中顯示文字過多時,會出現如下樣式的文字 文字顯示為省略號,當滑鼠移上去時顯示文字。 這就是文字超出顯示省略號。 主要用到了: text-overflow:ellipsis; overflow:hidden; white-space:

css文字多行顯示超出顯示省略號

首先,要知道css的三條屬性。 overflow:hidden; //超出的文字隱藏 text-overflow:ellipsis;//溢位用省略號顯示 white-space:nowrap;//溢位不

超出文字省略號

css超出隱藏省略號 <div class="demo demo1"> 瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡瞌睡 </div> <div class="de

文字超出寬度後,顯示省略號的解決辦法,以及flex與超出顯示省略號衝突問題

文字超出寬度後,顯示省略號的解決辦法overflow:hidden; white-space:nowrap; text-overflow:ellipsis;需要注意的是,在移動端在flex元素中的內容進

設定多行文字超出顯示省略號,在手機端超出部分無法隱藏解決方法

方法一: 跨瀏覽器相容的方案 比較靠譜簡單的做法就是設定相對定位的容器高度,用包含省略號(…)的元素模擬實現; p{ position:relative; line-height:1.4

Html中文字過多,單行超出和多行超出顯示省略號

本部落格主要介紹 前端開發中文字過多,以省略號顯示。 效果如圖:                單行: <!--單行--> <p class="pl">這個屬性定義溢位元

小程式 超出範圍 省略號 隱藏文字

(╥╯^╰╥)    單行 : overflow:hidden; //超出一行文字自動隱藏 text-overflow:ellipsis;//文字隱藏後新增省略號 white-space:

一行文字超出省略號或滾動處理小技巧

本文章轉自紅黑聯盟---------------->>點選開啟連結 一、只想讓TextView顯示一行,但是文字超過TextView的長度怎麼辦? 在開頭顯示省略號 [html] android:singleLine="true"  android:ell

css p 文字不換行,超出文字顯示省略號

.text { // 文字強制不換行 white-space: nowrap; // 文字溢位顯示省略號 text-overflow: ellipsis; // 溢位的

css實現文字“一行/兩行”顯示,超出部分省略號顯示

1.文字一行顯示: div { width: 150px; overflow: hidden; text-overflow: ellipsis; /* 文字超出部分省略號顯示 */ white-space: nowrap; /* 不

Android TextView 判斷文字內容是否超出顯示省略號

TextView 判斷文字內容是否超出顯示省略號 最近在做一個類似於QQ空間的一個社交圈的模組的開發。有一個需求是當用戶發表的內容超出4行時,顯示一個按鈕,點選按鈕展示全文。我還真沒有發現TextView有獲取文字內容有沒有顯示省略號這個方法。沒辦法,只能