代码源自于:微信小程序示例官方

index.wxml

  1. <block wx:for-items="{{list}}" wx:key="{{item.id}}">
  2. <view class="kind-list-item">
  3. <view id="{{item.id}}" class="kind-list-item-hd {{item.open ? 'kind-list-item-hd-show' : ''}}" bindtap="kindToggle">
  4. <view class="kind-list-text">{{item.name}}</view>
  5. </view>
  6. <view class="kind-list-item-bd {{item.open ? 'kind-list-item-bd-show' : ''}}">
  7. <view class="navigator-box {{item.open ? 'navigator-box-show' : ''}}">
  8. <block wx:for-items="{{item.pages}}" wx:for-item="page" wx:key="*item">
  9. <navigator url="pages/{{page}}/{{page}}" class="navigator">
  10. <view class="navigator-text">{{page}}</view>
  11. <!-- icon -->
  12. <view class="navigator-arrow"></view>
  13. </navigator>
  14. </block>
  15. </view>
  16. </view>
  17. </view>
  18. </block>

index.css

  1. .navigator-box {
  2. opacity:;
  3. position: relative;
  4. background-color: #fff;
  5. line-height: 1.41176471;
  6. font-size: 34rpx;
  7. transform: translateY(-50%);
  8. transition: 0.3s;
  9. }
  10.  
  11. .navigator-box-show {
  12. opacity:;
  13. transform: translateY(0);
  14. }
  15.  
  16. .navigator {
  17. padding: 20rpx 30rpx;
  18. position: relative;
  19. display: flex;
  20. align-items: center;
  21. }
  22.  
  23. .navigator:before {
  24. content: " ";
  25. position: absolute;
  26. left: 30rpx;
  27. top:;
  28. right: 30rpx;
  29. height: 1px;
  30. border-top: 1rpx solid #d8d8d8;
  31. color: #d8d8d8;
  32. }
  33.  
  34. .navigator:first-child:before {
  35. display: none;
  36. }
  37.  
  38. .navigator-text {
  39. flex:;
  40. }
  41.  
  42. .navigator-arrow {
  43. padding-right: 26rpx;
  44. position: relative;
  45. }
  46.  
  47. .navigator-arrow:after {
  48. content: " ";
  49. display: inline-block;
  50. height: 18rpx;
  51. width: 18rpx;
  52. border-width: 2rpx 2rpx 0 0;
  53. border-color: #888;
  54. border-style: solid;
  55. transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
  56. position: absolute;
  57. top: 50%;
  58. margin-top: -8rpx;
  59. right: 28rpx;
  60. }
  61.  
  62. .kind-list-item {
  63. margin: 20rpx 0;
  64. background-color: #fff;
  65. border-radius: 4rpx;
  66. overflow: hidden;
  67. border-bottom: 1px dashed #888;
  68. }
  69.  
  70. .kind-list-item:first-child {
  71. margin-top:;
  72. }
  73.  
  74. .kind-list-text {
  75. flex:;
  76. }
  77.  
  78. .kind-list-img {
  79. width: 60rpx;
  80. height: 60rpx;
  81. }
  82.  
  83. .kind-list-item-hd {
  84. padding: 30rpx;
  85. display: flex;
  86. align-items: center;
  87. transition: opacity 0.3s;
  88. }
  89.  
  90. .kind-list-item-hd-show {
  91. opacity: 0.2;
  92. }
  93.  
  94. .kind-list-item-bd {
  95. height:;
  96. overflow: hidden;
  97. }
  98.  
  99. .kind-list-item-bd-show {
  100. height: auto;
  101. }

index.js

  1. Page({
  2. data: {
  3. list: [{
  4. id: 'view',
  5. name: '视图容器',
  6. open: false,
  7. pages: ['view', 'scroll-view', 'swiper', 'movable-view', 'cover-view']
  8. }, {
  9. id: 'content',
  10. name: '基础内容',
  11. open: false,
  12. pages: ['text', 'icon', 'progress', 'rich-text']
  13. }, {
  14. id: 'form',
  15. name: '表单组件',
  16. open: false,
  17. pages: ['button', 'checkbox', 'form', 'input', 'label', 'picker', 'picker-view', 'radio', 'slider', 'switch', 'textarea']
  18. }, {
  19. id: 'nav',
  20. name: '导航',
  21. open: false,
  22. pages: ['navigator']
  23. }, {
  24. id: 'media',
  25. name: '媒体组件',
  26. open: false,
  27. pages: ['image', 'audio', 'video', 'camera']
  28. }, {
  29. id: 'map',
  30. name: '地图',
  31. pages: ['map']
  32. }, {
  33. id: 'canvas',
  34. name: '画布',
  35. pages: ['canvas']
  36. }, {
  37. id: 'open',
  38. name: '开放能力',
  39. pages: ['ad', 'open-data', 'web-view']
  40. }]
  41. },
  42.  
  43. /**
  44. * 收缩核心代码
  45. */
  46. kindToggle(e) {
  47. const id = e.currentTarget.id
  48. const list = this.data.list
  49. for (let i = 0, len = list.length; i < len; ++i) {
  50. if (list[i].id === id) {
  51. list[i].open = !list[i].open
  52. } else {
  53. list[i].open = false
  54. }
  55. }
  56.  
  57. /**
  58. * key和value名称一样时,可以省略
  59. *
  60. * list:list=>list
  61. */
  62. this.setData({
  63. list
  64. })
  65. }
  66. })

点击下载源码:示例-小程序展开收缩列表

微信小程序 - 展开收缩列表的更多相关文章

  1. 微信小程序开发-新闻列表之新闻列表绑定

    微信小程序开发-新闻列表之新闻列表绑定开发教程: 1.效果图预览 2.准备工作 在拿到效果图后不要先急着去写代码,而是要去分析一下页面的整体结构,用什么方式定位和布局.小程序里建议使用flex布局,因 ...

  2. 微信小程序新闻信息列表展示

    微信小程序信息展示列表 wxml <!-- 轮播图 --> <view class='haibao' bindtap="seeDetail" id="{ ...

  3. 微信小程序信息展示列表

    微信小程序信息展示列表 效果展示: 代码展示: wxml <view class="head"> <view class="head_item" ...

  4. 基于微信小程序的用户列表点赞功能

    代码地址如下:http://www.demodashi.com/demo/13997.html 一.前言 (1).适合人群 1.微信小程序开发者 2.前端工程师 3.想入门学习小程序开发的人员 4.想 ...

  5. 图解微信小程序---获取电影列表

    图解微信小程序---获取电影列表 代码笔记 list跳转 第一步:编写前端页面获取相关的电影列表参数(对于显示参数不熟悉,可以先写js,通过console  Log的方式获取我们电影的相关数据字段,后 ...

  6. 微信小程序,我的英雄列表

    最近微信小程序炒得火热,就跟成都的这个房价一样.昨天我也尝试了一下,做了一个自己的英雄列表.今天将自己的制作过程记录于此. 1.下载微信开发者工具 官网链接:https://mp.weixin.qq. ...

  7. 微信小程序 - 文字收缩与展开

    wxml <view class='containers'> <text class="content {{ellipsis?'ellipsis':'unellipsis' ...

  8. 小程序展开收缩文字demo

    demo效果图: wxml 代码: <view class="{{ellipsis?'ellipsis':'unellipsis'}}">五险一金五五险一金险险一金五五 ...

  9. 微信小程序云开发-列表数据分页加载显示

    一.准备工作 1.创建数据库nums,向数据库中导入108条数据 2.修改数据库表nums的权限 二.新建页面ListPaginated 1.wxml文件 <!-- 显示列表数据 --> ...

随机推荐

  1. mac系统终端下忽略大小写 与 git自动补全(git auto completion)

    1.下载git-completion.bash 并放到home 目录下: curl https://raw.githubusercontent.com/git/git/master/contrib/c ...

  2. 【BZOJ 3133】 3133: [Baltic2013]ballmachine (线段树+倍增)

    3133: [Baltic2013]ballmachine Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 148  Solved: 66 Descri ...

  3. 「THUWC 2017」随机二分图

    「THUWC 2017」随机二分图 解题思路 : 首先有一个 \(40pts\) 的做法: 前 \(20pts\) 暴力枚举最终的匹配是怎样的,check一下计算方案数,后 \(20pts\) 令 \ ...

  4. POJ2222 Keywords Search AC自动机模板

    http://acm.hdu.edu.cn/showproblem.php?pid=2222 题意:给出一些单词,求多少个单词在字符串中出现过(单词表单词可能有相同的,这些相同的单词视为不同的分别计数 ...

  5. 【推导】【贪心】【高精度】Gym - 101194E - Bet

    题意:每个队伍有个赔率pi,如果你往他身上押x元,它赢了,那么你得到x+(1/pi)x元,否则你一分都得不到.问你最多选几支队伍去押,使得存在一种押的方案,不论你押的那几支队伍谁赢,你都能赚得到钱. ...

  6. bzoj 1857

    三分,对于单凸的函数(单调的也可以),可以找出最值. 这道题可以感性认识一下...... /****************************************************** ...

  7. 使用Mysql慢查询日志对有效率问题的SQL进行监控

    输入命令:show variables like 'slow%' 可以发现 slow_query_log 为 OFF(默认),表示未开启慢查询日志 slow_query_log_file 为慢查询日志 ...

  8. 快速开发一个自己的微信小程序

    一.写在前面 1.为什么要学小程序开发? 对于前端开发而言,微信小程序因为其简单快速.开发成本低.用户流量巨大等特点,也就成了前端开发工程师必会的一个技能. 2.先看看小程序效果 (1)欢迎页 (2) ...

  9. IOS定位核心与地图

    IOS定位核心与地图                 Core Location以及Map框架包通常能给我们的应用程序添加定位和地图相关的服务.Core Location框架包通常是使用硬件设备来进行 ...

  10. Ubuntu环境下配置GCC

    Ubuntu网络环境下安装GCC及其头文件步骤: 1.Ubuntu环境下配置GCC 刚装好的GCC什么都不能编译,因为没有一些必须的头文件,所以要安装build-essential,安装了这个包会安装 ...