知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
小程序-實現(xiàn)折疊面板-手風琴效果
發(fā)表時間:2021-1-5
發(fā)布人:葵宇科技
瀏覽次數(shù):60
無論是在小程序還是 h5 網(wǎng)頁,折疊菜單,手風琴是一個非常常見的效果,如今也有很多現(xiàn)成的 UI 組件庫已經(jīng)實現(xiàn)了這一效果的,但有時候在寫原生小程序時,單單就是一個折疊菜單效果,卻要引入整個 UI 庫,有點得不償失
具體實現(xiàn)
如下是wxml
示例代碼
<view class="content">
<block wx:for="{{ listDatas }}" wx:key="index">
<view class="list-content" bindtap="onListClick" data-index="{{ index }}">
<view>
<text>{{ item.list_name }}text>
view>
<view>
<iconfont
class="iconfont {{selected[index] ? 'icon-arrow-down' : 'icon-right'}}"
>iconfont>
view>
view>
<view class="list-text {{selected[index] ? '' : 'hidden-content'}}">
<view>
<text selectable="true">{{ item.list_content }}text>
view>
view>
block>
view>
如下是`wxss`示例代碼
如下是折疊菜單邏輯代碼
Page({
/**
* 頁面的初始數(shù)據(jù)
*/
data: {
selected: [false, false, false, false, false], // // 這里表示列表項是否展開,默認初始時此數(shù)組的元素全為fasle,表示都沒展開
active: null, // 當前展開的項的index值
listDatas: [
{
list_name: '簡介',
list_content:
'一個靠前排的90后帥小伙,具有情懷的技匠,路上正追逐斜杠青年的踐行者',
},
{
list_name: '開發(fā)者',
list_content: '隨筆川跡',
},
{
list_name: '微信ID',
list_content: 'suibichuanji',
},
{
list_name: '微信公眾號',
list_content: 'itclanCoder',
},
{
list_name: '其他業(yè)務',
list_content:
'廣告文案策劃編寫/短視頻制作(特效,后期視頻處理)/配音/公眾號代運營',
},
],
},
/**
* 生命周期函數(shù)--監(jiān)聽頁面加載
*/
onLoad: function(options) {},
// 點擊列表,收縮與展示
onListClick(event) {
let index = event.currentTarget.dataset.index;
let active = this.data.active;
this.setData({
[`selected[${index}]`]: !this.data.selected[`${index}`],
active: index,
});
// 如果點擊的不是當前展開的項,則關閉當前展開的項
// 這里就實現(xiàn)了點擊一項,隱藏另一項
if (active !== null && active !== index) {
this.setData({
[`selected[${active}]`]: false,
});
}
},
});
如上代碼就可以實現(xiàn)手風琴的效果,主要利用的是css
中的display:none
,默認的一些子選項是隱藏的,然后列表的數(shù)據(jù)的名稱以及要展示的內(nèi)容放在一個數(shù)組listDatas
中,隨后,循環(huán)列表渲染
在列表中綁定點擊事件,在元素上設置data
屬性,在事件對象中就可以獲取到,最終通過setData
修改數(shù)據(jù),以達到實現(xiàn)手風琴的效果
結語
實現(xiàn)這個手風琴,主要還是在怎么控制子選項的一個狀態(tài)selected
,通過列表的索引,然后進行控制selected
的狀態(tài),實現(xiàn)子項列表內(nèi)容的顯示和隱藏
相關案例查看更多
相關閱讀
- 網(wǎng)站建設制作
- 大理網(wǎng)站建設公司
- 前端開發(fā)
- 昆明做網(wǎng)站建設的公司排名
- 微信小程序開發(fā)入門課程
- vue開發(fā)小程序
- web學習路線
- 高端網(wǎng)站建設公司
- 網(wǎng)站沒排名
- 汽車報廢回收軟件
- 小程序開發(fā)聯(lián)系方式
- 表單
- 云南網(wǎng)站設計
- 江蘇小程序開發(fā)
- 昆明網(wǎng)站建設公司
- 報廢車拆解軟件
- 汽車拆解系統(tǒng)
- 云南花農(nóng)小程序
- 二叉樹
- 云南網(wǎng)站制作哪家好
- typescript
- 百度排名
- 云南小程序開發(fā)費用
- 小程序技術
- 報廢車回收
- painter
- 網(wǎng)站建設服務公司
- 網(wǎng)站建設專業(yè)品牌
- flex
- 紅河小程序開發(fā)