很羅嗦地實現HTML5的乙個小特性

2021-09-08 07:02:00 字數 1859 閱讀 3956

話說首頁有個文章列表,大家注意到了吧?好像是廢話。布局上馬馬虎虎過得去,不過細看,偶眼光比咱首都的車檢員差得遠,還是能發現有違背社會和諧之處:

各個文章的概要長度七零八落,看上去不太齊整。前幾天專案中也碰到這樣問題,而且要截的內容可能包含許多richtext。現在沒有乙個瀏覽器支援哪種樣式,可以將在超出範圍內容自動截斷並加省略號。我等追求完美之人,怎麼能乙個substring了之呢?不信邪,研究了大半天,還真搞出了點名堂。現在地皮好貴,文字也得蝸居,不過比較人性化一點,固定的容器顯示盡可能多的內容,超過了加省略號。這篇文章就想解決這麼點問題,跟不屑的朋友說聲sorry。

對於留下來的朋友, 也不廢話了,直接上**:先實現只擷取文字,不截斷標籤。

=function

(len) ).substr(

0, len);

for(

vari =0

; i 

<

sections.length; i

++) 

while(/

^>

]*>

/.test(sections[i]))   

return

me;}

然後通過offsetheight判斷是否內容是否溢位。一般情況是乙個固定高度div做容器,設定了overflow:hidden。有標題有內容,標題可能兩行。

function

truncatecontent(sh) ;

vardivtitle =$(

'divtitle')

;if(divtitle.offsetheight 

>

25) sh 

-=13; 

if(divdes.offsetheight 

<

sh) 

return

;var

len 

=gettextlength();

varellipsis ="

......";

vardes 

=divdes.innerhtml;

while

(divdes.offsetheight 

>

sh) 

varstep 

=100

, n =20

;while

(step 

>1) 

step 

=parseint(step /2

);while

(divdes.offsetheight 

>

sh) 

step 

=parseint(step /2

);}des 

=divdes.innerhtml.substr(

0, divdes.innerhtml.length 

-ellipsis.length);

divdes.innerhtml 

=des.substr(0, 

des.lastindexof(""

)) +

ellipsis;}

好像挺麻煩的,沒辦法,呼喚html 5趕緊推廣吧。

這是效果:

昨天朋友(也是程式設計師)跟我說工作整天重複勞動沒意思,又學不到東西。可是據我所見,到處都有可學的東西,這一點東西都要研究這麼久。雖然本身價值可能有限(subtext函式應該是比較有用的,還可以.net後台實現),但至少鍛鍊了正則替換和演算法,這是copy多少**也掙不來滴。

HTML5建立乙個徑向 圓漸變

html5建立乙個徑向 圓漸變 1 設計原始碼 2 實現結果 3 原始碼說明 1 找到ca nvas元素 var canvas document.getelementbyid canvas 2 建立context元素 var ctx canvas.getcontext 2d 3 建立乙個徑向 圓漸變...

HTML5建立乙個徑向 圓漸變

html5建立乙個徑向 圓漸變 1 設計原始碼 2 實現結果 3 原始碼說明 1 找到ca nvas元素 var canvas document.getelementbyid canvas 2 建立context元素 var ctx canvas.getcontext 2d 3 建立乙個徑向 圓漸變...

分享3乙個部落格HTML5模板

1.材類別 半透明 部落格html模板 個人部落格 半透明html5部落格主題,半透明,部落格,部落格html模板,個人部落格,html5,灰色,半透明html5部落格主題是一款適合用於個人部落格主題,風格非常不錯.半透明html5部落格主題 2.素材類別 暗藍色 部落格html模板 部落格 ui設...