话不多说,上代码 ➡️

组件 资源下载(想直接下载组件,可以点击下载)

创建一个名为 treeList 的组件

组件代码

treeList.wxml:

<view class="treeList c{{step}}"><view class="line" style="margin-left:{{(step-1)*40}}px;"></view><view class="title" style="margin-left:{{(step-1)*40}}px;"><view class="icon" wx:if="{{listData.children.length>0 && isShowChildren}}" catchtap="toggleShowChildren">-</view><view class="icon" wx:elif="{{listData.children.length<=0}}"><view class="dot"></view></view><view class="icon" wx:else catchtap="toggleShowChildren">+</view><view class="text" >{{listData.title}}</view></view><block wx:if="{{listData.children.length>0&&isShowChildren}}" wx:for="{{listData.children}}" wx:key="index"><treeList listData="{{item}}" step="{{step+1}}"bindtreeListEvent="treeListEvent"></treeList></block>
</view>

treeList.wxss:

.treeList {box-sizing: border-box;position: relative;font-size: 30rpx;margin: 20rpx 0;
}
.line {position: absolute;height: calc(100% - 30rpx) ;width: 0px;border-left: 2rpx dashed #999999;left: 20rpx;top: 46rpx;
}
treeList:last-of-type>.treeList>.line {display: none;
}
.title {display: flex;align-items: center;
}
.title .icon {height: 38rpx;width: 38rpx;line-height: 38rpx;text-align: center;margin-right: 10rpx;border: 2rpx solid #cccccc;color: #cccccc;
}
.title .icon .dot {width: 20rpx;height: 20rpx;background: #f0f0f0;margin: 9rpx 0 0 9rpx;border-radius: 50%;
}
.title text {margin-right: 6rpx;
}
.title text.iconfont {font-size: 42rpx;
}
.title text.icon-tianjia {margin-left: 6rpx;font-size: 36rpx;
}
.title .btn {padding: 8rpx 20rpx;border: 2rpx solid #555555;color: #555555;font-size: 24rpx;margin-left: 4rpx;border-radius: 8rpx;
}
.title .text {padding: 6rpx 10rpx;border-radius: 10rpx;text-align: center;box-sizing: border-box;
}

treeList.json:

{"component": true,"usingComponents": { "treeList":"/components/treeList/treeList" }
}

treeList.js:

Component({ properties: { listData:{ type:Array|Object, value:{} }, step:{ type:Number, value:1 }, }, data: { isShowChildren:true, }, methods: {  toggleShowChildren(){ this.setData({ isShowChildren:!this.data.isShowChildren }) }, } })

组件路径根据实际情况

需要使用树形菜单的页面 引入组件

页面代码

json 引用组件

{"usingComponents": {"treeList":"/components/treeList/treeList"},"navigationBarTitleText": "标题"
}

wxml中使用组件:

<view class="list"><block wx:for="{{listData}}" wx:key="index"><treeList listData="{{item}}" step="1" ></treeList></block>
</view>

listData的数据格式如下:

listData:[{title:'A层级菜单1',children:[{title:'B层级菜单1',children:[],isBind:true},{title:'B层级菜单2',children:[{title:'C层级菜单1',children:[]}]}]},{title:'A层级菜单2',children:[]}],

展示效果

微信小程序 实现 树形菜单其实很简单相关推荐

  1. 微信小程序左右菜单mysql_微信小程序做出外卖菜单点单功能

    这次给大家带来微信小程序做出外卖菜单点单功能,的注意事项有哪些,下面就是实战案例,一起来看一下. 1.功能仅是菜单功能一部分,仅供参考 2.需求描述:右侧菜品部分在滚动的时候,左侧菜品选中分类与右侧第 ...

  2. linux带头像通讯录软件,这款微信小程序,拯救空白了很久的通讯录头像!

    原标题:这款微信小程序,拯救空白了很久的通讯录头像! 一直以来,智能手机用户都被一个不大不小的问题困惑着--无论 iOS 还是 Android 平台,手机通讯录早已经支持了自定义好友头像的功能.然而由 ...

  3. 微信小程序源码推荐 这个很实用 学习地址

    wx-gesture-lock  微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 sh ...

  4. php小程序地图处理,微信小程序 地图map详解及简单实例

    微信小程序 地图map 微信小程序map 地图属性名类型默认值说明longitudeNumber中心经度 latitudeNumber中心纬度 scaleNumber1缩放级别 markersArra ...

  5. 【小程序源码】检讨书生成微信小程序工具源码-安装搭建简单

    对于经常写检讨的小伙伴来说,福音来了 因为这是一款检讨书生成小程序 所以再也不用为了写检讨而烦恼了哦 支持自定义字数下线,主题自定义 支持多种类型检讨比如:学生党的,男朋友,领导演讲稿,共青团申请书等 ...

  6. 微信小程序自定义提示框制作的简单方法

    微信小程序自定义提示框制作的简单方法 下面的时候提示框的结构 wxml部分 <!-- 提示框 --> <view class="showToast" wx:if= ...

  7. 微信小程序 - 实现左右菜单联动功能

      今天给大家分享一下如何实现微信小程序左右菜单栏联动效果(相关代码模块我已单独整理放到github上面了,欢迎前来start),具体过程如下: 效果图: github地址:https://githu ...

  8. [微信小程序]下拉菜单

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 动画效果是使用CSS3 @keyframes 规则(使 div 元素匀速向下移动) <view ...

  9. 微信小程序的运营与装修,简单几步掌握

    尽管如今越来越多商家都已经认识到小程序商城获客成本低,使用方便的优势. 作为商家的私域流量,如果小程序商城制作之后,没有真正运营起来是不会有流量的,也就无法给商家带来实实在在的收益.微信小程序的运营与 ...

最新文章

  1. Java两种排序方式快慢比较
  2. 计算机编程书籍-Python硬件开发树莓派从入门到实践无人驾驶 AndroidTV 自动循迹
  3. linux 里常用的几个查找命令
  4. 学习打卡-2018/08/09
  5. android radiobutton_时隔一年,用新知识重构一个Android控件老库
  6. java中多条件与不定条件查询
  7. 印发 指南 通知_通知设计的综合指南
  8. 栈应用(中缀表达式转后缀表达式并计算后缀表达式的值)
  9. 《UTF-8与GB2312之间的互换》的改进
  10. cublas中执行矩阵乘法运算的函数 首先要注意的是cublas使用的是以列为主的存储方式,和c/c++中的以行为主的方式是不一样的。处理方法可参考下面的注释代码
  11. MongoDB 常用shell命令汇总
  12. Twine:Facebook 集群调度管理系统
  13. 外贸软件常见图片类问题丨汇信
  14. 数据库连接池连接耗尽,导致tomcat请求无响应,呈现出假死状态
  15. 电脑关闭Fn键+F1,直接使用F1键
  16. 关于arduino驱动SH1106 OLED屏幕使用U8g2库显示案例
  17. 基于制导武器的分布式半实物仿真系统ETest研究
  18. 调用Tushare数据库绘制K线图
  19. STM32的升级--ICP/ISP/IAP以及Ymodem协议分析
  20. 接口测试一般怎么测?接口测试流程和步骤与测试点......

热门文章

  1. 计算机键盘如何打字课件,教您如何熟悉键盘(打字指法)_计算机的基本知识_IT /计算机_信息...
  2. 汇川伺服IS620N支持的35种原点回归模式
  3. ModuleNotFoundError: No module named 'skimage'报错信息的解决方法及如何使用国内镜像安装库文件
  4. 再度递表港交所,“快”能否成为绿茶餐厅突围的筹码?
  5. 光模块价格由带宽还是距离决定_佛山单模光模块价格
  6. 盘点气压传感器在智能手机中应用场景 智芯传感板装式压力传感器提升产品性能
  7. 大多数人不知道的企业数据分析能力金字塔,你处在哪一级?
  8. UML时序图(Sequence Diagram)
  9. 史上最简单的rar压缩包文档解密方法,rar压缩包权限密码如何解开?
  10. http://www.cnblogs.com/txw1958/p/alipay-f2fpay.html