小程序?qū)崿F(xiàn)展開/收起的效果示例
前言:本章說(shuō)下文字內(nèi)容的展開與收起的實(shí)現(xiàn),要實(shí)現(xiàn)這么一個(gè)效果:當(dāng)收起的時(shí)候隱藏并顯示省略號(hào),當(dāng)展開的時(shí)候顯示全部文字。
GitHub:https://github.com/Ewall1106/miniProgramDemo
先看下效果圖:

小程序 — 展開/收起
1、結(jié)構(gòu)樣式
(1)首先我們定義一下html結(jié)構(gòu):
<view class="container"> <view class="title"> <text class="title_txt">標(biāo)題標(biāo)題</text> <image class="title_icon" src="/assets/images/arrow_up.png" /> </view> <view class="content"> 我所有的自負(fù)皆來(lái)自我的自卑,所有的英雄氣概都來(lái)自于我的軟弱。嘴里振振有詞是因?yàn)樾睦餄M是懷疑,深情是因?yàn)橥春拮约簾o(wú)情。這世界沒有一件事情是虛空而生的,站在光里,背后就會(huì)有陰影,這深夜里一片寂靜,是因?yàn)槟氵€沒有聽見聲音。 </view> </view>
內(nèi)容摘抄至馬良《告坦白書》中我一段喜歡的文字。
(2)less樣式:
標(biāo)題 title 就是一個(gè)簡(jiǎn)單的flex布局; 內(nèi)容 content 中的文字我們默認(rèn)收起狀態(tài)且只展示兩行
.container {
.title {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: 25rpx;
.title_txt {
font-size: 34rpx;
color: #2b2b2b;
}
.title_icon {
display: block;
width: 21rpx;
height: 11rpx;
}
}
.content {
height: 80rpx;
overflow: hidden;
text-overflow: ellipsis;
text-overflow: -o-ellipsis-lastline;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
padding: 0 25rpx;
font-size: 30rpx;
color: #888888;
}
}
(3)這樣我們就實(shí)現(xiàn)了一個(gè)默認(rèn)布局樣式

收起狀態(tài)
2、添加點(diǎn)擊事件
(1)首先我們應(yīng)該在 data 中定義一個(gè)變量 isShow 用來(lái)控制樣式的切換,默認(rèn)為收起狀態(tài)(即不展示)。
data = {
isShow: false
};
(2)在箭頭icon上添加一個(gè)點(diǎn)擊事件,當(dāng)點(diǎn)擊的時(shí)候?qū)?isShow 做取反操作;
toggle() {
this.isShow = !this.isShow;
this.$apply();
}
3、樣式動(dòng)態(tài)切換
(1)首先是image箭頭圖片的切換(注意是如何動(dòng)態(tài)的切換本地圖片的)
<image class="title_icon" src="{{isShow ? '/assets/images/arrow_down.png' : '/assets/images/arrow_up.png'}}" @tap="toggle" />
(2)然后我們定義一個(gè)展開的樣式,根據(jù)isShow的狀態(tài)值動(dòng)態(tài)的切換樣式
<view class="content {{isShow ? 'on' : ''}}">
我所有的自負(fù)皆來(lái)自我的自卑,所有的英雄氣概都來(lái)自于我的軟弱。嘴里振振有詞是因?yàn)樾睦餄M是懷疑,深情是因?yàn)橥春拮约簾o(wú)情。這世界沒有一件事情是虛空而生的,站在光里,背后就會(huì)有陰影,這深夜里一片寂靜,是因?yàn)槟氵€沒有聽見聲音。
</view>
.content.on {
display: block;
text-overflow: clip;
overflow: visible;
}
4、小結(jié)
這樣我們就實(shí)現(xiàn)了文本框的展開/收起效果,當(dāng)收起的時(shí)候顯示省略號(hào)并隱藏,當(dāng)展開的時(shí)候展示全部文字。
當(dāng)然,不僅僅是文字的收起與展開,里面放其它的內(nèi)容也是可以的,根據(jù)需求來(lái)應(yīng)對(duì)了;還有就是可以加個(gè)動(dòng)畫之類的完善一下交互效果,感興趣的朋友可以自己鼓搗。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Javascript 正則表達(dá)式實(shí)現(xiàn)為數(shù)字添加千位分隔符
在項(xiàng)目中做貨幣轉(zhuǎn)換的時(shí)候經(jīng)常需要可以實(shí)現(xiàn)自動(dòng)格式化輸入的數(shù)字,自動(dòng)千位分隔符,在網(wǎng)上也看到一些其他網(wǎng)友的實(shí)現(xiàn)的代碼,感覺都不是太滿意,于是自己研究了下,分享給大家。2015-03-03
JS實(shí)現(xiàn)的網(wǎng)頁(yè)倒計(jì)時(shí)數(shù)字時(shí)鐘效果
這篇文章主要介紹了JS實(shí)現(xiàn)的網(wǎng)頁(yè)倒計(jì)時(shí)數(shù)字時(shí)鐘效果,是一款非常實(shí)用的javascript倒計(jì)時(shí)特效,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
js實(shí)現(xiàn)的真正的iframe高度自適應(yīng)(兼容IE,FF,Opera)
由于項(xiàng)目上的需要,要用一個(gè)iframe高度自適應(yīng)的功能,在google上搜了很久,找了一些修改了下。大家可以測(cè)試下。2010-03-03
JavaScript實(shí)現(xiàn)復(fù)制功能各瀏覽器支持情況實(shí)測(cè)
這兩天在做Web前端時(shí),遇到需求通過js實(shí)現(xiàn)文本復(fù)制的功能,下面與大家分享下各瀏覽器對(duì)復(fù)制功能的支持情況,感興趣的朋友可以參考下哈2013-07-07
關(guān)聯(lián)的Select,可以支持客戶端動(dòng)態(tài)更新
關(guān)聯(lián)的Select,可以支持客戶端動(dòng)態(tài)更新...2006-09-09
JS基于對(duì)象的特性實(shí)現(xiàn)去除數(shù)組中重復(fù)項(xiàng)功能詳解
這篇文章主要介紹了JS基于對(duì)象的特性實(shí)現(xiàn)去除數(shù)組中重復(fù)項(xiàng)功能,結(jié)合實(shí)例形式較為詳細(xì)的分析了js基于key值唯一性實(shí)現(xiàn)數(shù)組去重的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
window.onbeforeunload方法在IE下無(wú)法正常工作的解決辦法
下面的代碼可以做到不管用戶是點(diǎn)擊了關(guān)閉,或者是在任務(wù)欄關(guān)閉、點(diǎn)擊后退、刷新、按F5鍵,都可以檢測(cè)到用戶即將離開的消息。2010-01-01
使用GPT寫代碼實(shí)現(xiàn)高亮頁(yè)面關(guān)鍵字
這篇文章主要為大家介紹了使用GPT寫代碼實(shí)現(xiàn)高亮頁(yè)面關(guān)鍵字示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

