小程序?qū)崿F(xiàn)展開/收起的效果示例
前言:本章說下文字內(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ù)皆來自我的自卑,所有的英雄氣概都來自于我的軟弱。嘴里振振有詞是因?yàn)樾睦餄M是懷疑,深情是因?yàn)橥春拮约簾o情。這世界沒有一件事情是虛空而生的,站在光里,背后就會(huì)有陰影,這深夜里一片寂靜,是因?yàn)槟氵€沒有聽見聲音。 </view> </view>
內(nèi)容摘抄至馬良《告坦白書》中我一段喜歡的文字。
(2)less樣式:
標(biāo)題 title 就是一個(gè)簡單的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 用來控制樣式的切換,默認(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ù)皆來自我的自卑,所有的英雄氣概都來自于我的軟弱。嘴里振振有詞是因?yàn)樾睦餄M是懷疑,深情是因?yàn)橥春拮约簾o情。這世界沒有一件事情是虛空而生的,站在光里,背后就會(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ù)需求來應(yīng)對(duì)了;還有就是可以加個(gè)動(dòng)畫之類的完善一下交互效果,感興趣的朋友可以自己鼓搗。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Extjs gridpanel 中的checkbox(復(fù)選框)根據(jù)某行的條件不能選中的解決方法
這篇文章主要介紹了Extjs gridpanel 中的checkbox(復(fù)選框)根據(jù)某行的條件不能選中的解決方法,需要的朋友可以參考下2017-02-02
Bootstrap項(xiàng)目實(shí)戰(zhàn)之子欄目資訊內(nèi)容
Bootstrap項(xiàng)目實(shí)戰(zhàn)之資訊內(nèi)容,本文主要學(xué)習(xí)制作一下子欄目資訊內(nèi)容,感興趣的小伙伴們可以參考一下2016-04-04
js操作Xml(向服務(wù)器發(fā)送Xml,處理服務(wù)器返回的Xml)(IE下有效)
js操作Xml(向服務(wù)器發(fā)送Xml,處理服務(wù)器返回的Xml)(暫只IE下有效)2009-01-01
用一段js程序來實(shí)現(xiàn)動(dòng)畫功能
用一段js程序來實(shí)現(xiàn)動(dòng)畫功能...2007-03-03
JS實(shí)現(xiàn)上下左右對(duì)稱的九九乘法表
九九乘法表使用很多種語言都可以實(shí)現(xiàn),本文給大家介紹js使用for、while循環(huán)來完成四種對(duì)稱的九九乘法表,對(duì)九九乘法表需要的朋友參考下2016-02-02
JavaScript 獲取任一float型小數(shù)點(diǎn)后兩位的小數(shù)
這篇文章主要介紹了JavaScript如何獲取小數(shù)任一小數(shù)點(diǎn)后的位數(shù)的小數(shù),需要的朋友可以參考下2014-06-06
微信小程序自定義yPicker組件實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)功能
這篇文章主要介紹了微信小程序自定義yPicker組件分析及省市區(qū)三級(jí)聯(lián)動(dòng)實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10

