知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
微信小程序過長文本折疊效果的探索
發(fā)表時間:2021-3-31
發(fā)布人:葵宇科技
瀏覽次數(shù):99
之前做小程序開發(fā)時,遇到要實現(xiàn)過長文本進行的折疊的效果(類型微信朋友圈那種)。主要交互有三點:
- 讓文本過長時折疊、并顯示一個“全文”的點擊文本
- 當用戶點擊“全文”則會展開被折疊的文本,并切換該按鈕為“收起”
- 對不過長的文本則正常顯示
本質(zhì)上,要實現(xiàn)這個效果得解決兩個問題:
- 判斷文本是否過長的標準
- 文本過長時樣式如何折疊
判斷文本是否過長
所謂文本過長就是文本占據(jù)的高度太大,之所以要判斷這個,是為了能告知邏輯層控制“全文”按鈕的展示與切換。如果沒這個交互,完全可忽略這個問題。
而最直接的文本過長判斷標準,是文本行數(shù)超過某個值。在瀏覽器端,可通過DOM獲取容器高度和文本的行高,來計算文本顯示的行數(shù);但小程序中并沒有給js訪問文本行數(shù)或組件高度的接口,我們無從獲知行數(shù)過多告知邏輯層。
所以,只能退而求其次,采用字符數(shù)來作為文本過長的標準。至于多少字符算過長,可綜合容器寬度、字符(中文字符會占兩個英文字符寬度)、字體、字號,和設(shè)計師確認。但顯然這種做法還有問題,比如遇到每行字符數(shù)很少時仍會顯示許多行、而不進行文本過長的處理,違背我們折疊過長文本的初衷。
文本過長如何折疊
一個簡單的思路是用行高算出一個固定的高度,只顯示前幾行,但該做法過于依賴樣式的實現(xiàn)、不利于維護。在小程序中,我們可采用移動端頁面開發(fā)中一個hack技術(shù):-webkit-line-clamp
,這個webkit內(nèi)核私有的CSS屬性用于設(shè)置留在容器中的文本行數(shù),讓其余的文本處于“溢出”狀態(tài)。接下來只要結(jié)合text-overflow: ellipsis;
和overflow: hidden;
就能達到讓過長的文本只顯示前幾行的效果,即“折疊”。
-webkit-line-clamp
的使用有幾個注意點:
- 兼容性。其在Chrome、Safari、QQ等webkit系瀏覽器都很可靠。而微信小程序的View渲染引擎WKWebView和X5也都是從webkit改過來的,兼容性有較好的保障
- 該屬性有個使用前提:需在文本容器開啟webkit瀏覽器私有的Flex布局—
display: webkit-box;
,并將設(shè)置子元素的排列方式為-webkit-box-orient: vertical;
- 該屬性對行數(shù)的計算是依據(jù)inline元素來的,只會計算inline元素的行數(shù)
基于第三點,在涉及到文本分段時,為了實現(xiàn)按指定的行數(shù)折疊,就不能把每段輸出到一個block元素(比如view組件)中了。那要怎么分段呢?雖然小程序沒有<br>
這種東西,但好在其text組件支持轉(zhuǎn)義字符,我們可以把每段輸?shù)揭粋€text組件中,并在text組件結(jié)尾加上\n
來實現(xiàn)分段。
總結(jié)
以上,總結(jié)下小程序下文本過長折疊的思路:文本過長由邏輯層判斷字符數(shù)確定,控制“全文”按鈕的展示與切換。過長時應用-webkit-line-clamp
樣式折疊文本,再次展開文本只要撤銷該樣式。
相關(guān)案例查看更多
相關(guān)閱讀
- 汽車拆解管理軟件
- 汽車報廢回收
- 小程序表單
- 汽車回收管理系統(tǒng)
- 云南網(wǎng)站建設(shè)服務
- 云南網(wǎng)站建設(shè)專家
- 出入小程序
- 保險網(wǎng)站建設(shè)公司
- 云南小程序開發(fā)哪家好
- 百度自然排名
- 商標注冊
- 霸屏推廣
- 云南小程序開發(fā)制作
- 排名
- 網(wǎng)站開發(fā)
- web服務
- 手機網(wǎng)站建設(shè)
- 報廢車回收管理系統(tǒng)
- 英文網(wǎng)站建設(shè)公司
- 網(wǎng)絡(luò)公司排名
- 云南軟件公司
- 云南網(wǎng)站建設(shè)案例
- 云南網(wǎng)站建設(shè)費用
- 云南網(wǎng)站建設(shè)百度官方
- 海報插件
- 網(wǎng)站建設(shè)服務公司
- 網(wǎng)絡(luò)公司聯(lián)系方式
- 網(wǎng)絡(luò)公司哪家好
- 商標
- 海南小程序制作公司