h5 手風琴效果_小程序-實現折疊面板-手風琴效果

背景

無論是在小程序還是 h5 網頁,折疊菜單,手風琴是一個非常常見的效果,如今也有很多現成的 UI 組件庫已經實現了這一效果的,但有時候在寫原生小程序時,單單就是一個折疊菜單效果,卻要引入整個 UI 庫,有點得不償失

以下就自己手動實現一個的

實例效果

785b0ca858dbd2508fe6ac585121e511.gif

具體實現

如下是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><iconfontclass="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示例代碼

.content {padding: 15rpx 15rpx 0 15rpx;font-size: 30rpx;color: #808080;
}.list-content {display: flex;justify-content: space-between;text-align: center;line-height: 60rpx;border-bottom: 1rpx solid #ddd;
}.list-text {padding-top: 15rpx;transition: all 0.5s ease;text-indent: 40rpx;display: block;
}.hidden-content {// 主要利用的是display:none實現隱藏display: none;
}

如下是折疊菜單邏輯代碼

Page({/*** 頁面的初始數據*/data: {selected: [false, false, false, false, false], // // 這里表示列表項是否展開,默認初始時此數組的元素全為fasle,表示都沒展開active: null, // 當前展開的項的index值listDatas: [{list_name: '簡介',list_content:'一個靠前排的90后帥小伙,具有情懷的技匠,路上正追逐斜杠青年的踐行者',},{list_name: '開發者',list_content: '隨筆川跡',},{list_name: '微信ID',list_content: 'suibichuanji',},{list_name: '微信公眾號',list_content: 'itclanCoder',},{list_name: '其他業務',list_content:'廣告文案策劃編寫/短視頻制作(特效,后期視頻處理)/配音/公眾號代運營',},],},/*** 生命周期函數--監聽頁面加載*/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,});// 如果點擊的不是當前展開的項,則關閉當前展開的項// 這里就實現了點擊一項,隱藏另一項if (active !== null && active !== index) {this.setData({[`selected[${active}]`]: false,});}},
});

如上代碼就可以實現手風琴的效果,主要利用的是css中的display:none,默認的一些子選項是隱藏的,然后列表的數據的名稱以及要展示的內容放在一個數組listDatas中,隨后,循環列表渲染

在列表中綁定點擊事件,在元素上設置data屬性,在事件對象中就可以獲取到,最終通過setData修改數據,以達到實現手風琴的效果

結語

實現這個手風琴,主要還是在怎么控制子選項的一個狀態selected,通過列表的索引,然后進行控制selected的狀態,實現子項列表內容的顯示和隱藏

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270732.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270732.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270732.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle數據庫連接 ORA-12638:身份證明檢索失敗

連數據庫的時候突然報了一個這個 查找各種辦法&#xff0c;發現自己從10g換成了11g&#xff0c;不過這個沒有什么關系&#xff0c;跟oracle的安全設置有關系&#xff0c; 首先從開始菜單找到Net Manager 打開&#xff0c;選擇本地&#xff0c;概要文件&#xff0c;下拉列表中選…

IntelliJ IDEA 2021.1更新了好多實用功能介紹

目錄 1、WSL 2的支持 2、內置的HTML預覽器 3、搜索范圍的增強 4、增強的Pull Request支持 5、拆分窗口優化 6、JAVA 16的支持 7、更智能的數據檢查 IntelliJ IDEA 2021.1 正式版發布了&#xff0c;這個版本最大的更新內容&#xff0c;就是支持WSL 2和JAVA 16了。而且除了支持WS…

生產三碼 黑蘋果_黑蘋果OC配置工具:OpenCore Configurator v2.15.2.0

一、版本軟件版本&#xff1a;OpenCore Configurator 5.15.0.1更新日期&#xff1a;2020年10月14日系統版本&#xff1a;macOS 10.12 Sierra及以上二、OpenCore簡介OpenCore是非常優秀的開源軟件&#xff0c;旨在通過提供更加通用和模塊化的系統來解決Clover帶來的限制和問題&a…

電腦硬件常見故障維修技巧

電腦已經成為我們學習日常生活娛樂必不可少的設備了&#xff0c;時間久了難免會遇到小故障&#xff0c;今天我們一起來看下遇到常見的電腦硬件方面的小故障&#xff0c;我們應該如何去自己檢測和維修吧。 電腦檢測故障我們還是要從電腦的幾大硬件開始檢查起。 1、CPU 打開機箱查…

面向對象寫選項卡、拖拽

js&#xff1a; 面向對象說白了就是一個黑匣子&#xff0c;所謂黑匣子就是知道具體怎么弄但不了解里面運轉流程。 面向對象的組成&#xff1a;屬性、方法。 屬性其實也就是js里面常用的對象&#xff0c;只不過換了一只叫法。 至于方法則是js里面常用的函數。 唯一兩者的區別&am…

gdb查看空指針 linux_5 個鮮為人知 GNU 調試器(GDB)技巧

了解如何使用 gdb 的一些鮮為人知的功能來檢查和修復代碼。-- Tim Waugh(作者)GNU 調試器 (gdb)是一種寶貴的工具&#xff0c;可用于在開發程序時檢查正在運行的進程并解決問題。你可以在特定位置(按函數名稱、行號等)設置斷點、啟用和禁用這些斷點、顯示和更改變量值&#xff…

盤點三個JavaScript案例——實現限時秒殺、定時跳轉、改變盒子大小

前言 今天來給大家盤點三個JavaScript案例&#xff0c;分別是實現限時秒殺、定時跳轉、改變盒子大小案例&#xff0c;一起來看看吧&#xff01; 一、實現限時秒殺案例 1.在淘寶網中&#xff0c;商家為了促銷經常搞一些活動&#xff0c;例如限時秒殺是常見的一種活動&#xff0c…

安裝SQL提示重啟電腦失敗,解決辦法

1. 打開注冊表&#xff0c; 找到HKEY_LOCAL_MACHINE-->software-->Microsof-->MSSQLServer...統統刪掉 2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager目錄&#xff0c;在右側找到PendingFileRenameOperations。刪除。 重啟電腦&#xff0c;…

華為的鴻蒙系統是海思_死心了!華為鴻蒙系統首款終端確認,不是手機

歡迎點擊上面ZAKER關注5 月底谷歌宣布斷供華為。隨后&#xff0c;華為 " 秘密 " 研發 7 年的自主產權操作系統鴻蒙被公之于眾。隨著關于鴻蒙系統的消息越來越多&#xff0c;如鴻蒙系統 2012 年便開始規劃、鴻蒙系統在多個國家注冊商標等。人們除了佩服華為的未雨綢繆…

網絡知識:寬帶下載網速是30MB/s,經過路由器后僅10MB/s,看完你就懂了

問題&#xff1a;寬帶下載網速本是30MB/s&#xff0c;經過路由器后速度僅10MB/s&#xff0c;這是為什么&#xff1f; 寬帶下載測速可以到30MB/s&#xff0c;說明外線和光貓還有電腦是沒有問題的。目前家庭的組網基本都是光纖入戶了&#xff0c;你的測速瓶頸既然不在光貓&#…

手機投屏到電腦的5種方式,你學到了嗎

今天小編給大家分享5種手機投屏到電腦的方式&#xff0c;希望對大家能有幫助&#xff01; 方法一&#xff1a; 1、我們可以通過Win10自帶的投影功能&#xff0c;將我們的手機和電腦連接同一個無線網絡。 2、接下來我們就在電腦開始菜單欄里找到設置選項打開。 3、我們進入之后找…

poj 3728 Catch That Cow ([kuangbin帶你飛]專題一 簡單搜索)

題目大意&#xff1a;題目鏈接 就是給你N&#xff0c;K&#xff0c;每次有三種慚怍1&#xff0c;-1&#xff0c;*2&#xff0c;&#xff0c;問多少次操作能到K 解題思路&#xff0c;搜索直接算&#xff0c;。&#xff0c;&#xff0c;&#xff0c;哎&#xff0c;啥時候這種垃圾…

不攔截指定路徑_控制層訪問攔截

在控制層進行訪問攔截也是我們在項目中常會遇到的需求,例如:項目中要求系統登錄操作有時間限制--12306購票時間的限制等.對于這類需求我們一般有幾種選擇:過濾器FilterAOPSpringMVC攔截器...本文我們主要說一下SpringMVC攔截器的實現原理Spring MVC的攔截器是基于回調機制,可以…

電腦知識:Win10系統把系統盤的軟件移到D盤的簡單方法

??作者主頁&#xff1a;IT技術分享社區 ??作者簡介&#xff1a;大家好,我是IT技術分享社區的博主&#xff0c;從事C#、Java開發九年&#xff0c;對數據庫、C#、Java、前端、運維、電腦技巧等經驗豐富。 ??個人榮譽&#xff1a; 數據庫領域優質創作者&#x1f3c6;&#x…

RuntimeException和Exception區別

Exception &#xff1a;受檢查的異常&#xff0c;這種異常是強制我們catch或throw的異常。你遇到這種異常必須進行catch或throw&#xff0c;如果不處理&#xff0c;編譯器會報錯。比如&#xff1a;IOException。 RuntimeException&#xff1a;運行時異常&#xff0c;這種異常我…

語言高精度算法階乘_JavaScript中的算法(附10道面試常見算法題解決方法和思路)...

https://juejin.im/post/6844903811505455118Introduction面試過程通常從最初的電話面試開始&#xff0c;然后是現場面試&#xff0c;檢查編程技能和文化契合度。幾乎毫無例外&#xff0c;最終的決定因素是還是編碼能力。通常上&#xff0c;不僅僅要求能得到正確的答案&#xf…

硬件:LCD和LED相關知識介紹

目錄 一、LCD簡介 二、LED簡介 三、LED和 LCD的區別 四、LED和 LCD顯示器的區別 一、LCD簡介 LCD是液晶顯示屏(Liquid Crystal)Display的全稱&#xff0c;主要有TFT、UFB、TFD、STN等幾種類型的液晶顯示屏無法定位程序輸入點于動態鏈接庫上。 筆記本液晶屏最常用的是TFT。 TFT…