微信小程序 - 展开收缩列表
代码源自于:微信小程序示例官方
index.wxml
- <block wx:for-items="{{list}}" wx:key="{{item.id}}">
- <view class="kind-list-item">
- <view id="{{item.id}}" class="kind-list-item-hd {{item.open ? 'kind-list-item-hd-show' : ''}}" bindtap="kindToggle">
- <view class="kind-list-text">{{item.name}}</view>
- </view>
- <view class="kind-list-item-bd {{item.open ? 'kind-list-item-bd-show' : ''}}">
- <view class="navigator-box {{item.open ? 'navigator-box-show' : ''}}">
- <block wx:for-items="{{item.pages}}" wx:for-item="page" wx:key="*item">
- <navigator url="pages/{{page}}/{{page}}" class="navigator">
- <view class="navigator-text">{{page}}</view>
- <!-- icon -->
- <view class="navigator-arrow"></view>
- </navigator>
- </block>
- </view>
- </view>
- </view>
- </block>
index.css
- .navigator-box {
- opacity:;
- position: relative;
- background-color: #fff;
- line-height: 1.41176471;
- font-size: 34rpx;
- transform: translateY(-50%);
- transition: 0.3s;
- }
- .navigator-box-show {
- opacity:;
- transform: translateY(0);
- }
- .navigator {
- padding: 20rpx 30rpx;
- position: relative;
- display: flex;
- align-items: center;
- }
- .navigator:before {
- content: " ";
- position: absolute;
- left: 30rpx;
- top:;
- right: 30rpx;
- height: 1px;
- border-top: 1rpx solid #d8d8d8;
- color: #d8d8d8;
- }
- .navigator:first-child:before {
- display: none;
- }
- .navigator-text {
- flex:;
- }
- .navigator-arrow {
- padding-right: 26rpx;
- position: relative;
- }
- .navigator-arrow:after {
- content: " ";
- display: inline-block;
- height: 18rpx;
- width: 18rpx;
- border-width: 2rpx 2rpx 0 0;
- border-color: #888;
- border-style: solid;
- transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
- position: absolute;
- top: 50%;
- margin-top: -8rpx;
- right: 28rpx;
- }
- .kind-list-item {
- margin: 20rpx 0;
- background-color: #fff;
- border-radius: 4rpx;
- overflow: hidden;
- border-bottom: 1px dashed #888;
- }
- .kind-list-item:first-child {
- margin-top:;
- }
- .kind-list-text {
- flex:;
- }
- .kind-list-img {
- width: 60rpx;
- height: 60rpx;
- }
- .kind-list-item-hd {
- padding: 30rpx;
- display: flex;
- align-items: center;
- transition: opacity 0.3s;
- }
- .kind-list-item-hd-show {
- opacity: 0.2;
- }
- .kind-list-item-bd {
- height:;
- overflow: hidden;
- }
- .kind-list-item-bd-show {
- height: auto;
- }
index.js
- Page({
- data: {
- list: [{
- id: 'view',
- name: '视图容器',
- open: false,
- pages: ['view', 'scroll-view', 'swiper', 'movable-view', 'cover-view']
- }, {
- id: 'content',
- name: '基础内容',
- open: false,
- pages: ['text', 'icon', 'progress', 'rich-text']
- }, {
- id: 'form',
- name: '表单组件',
- open: false,
- pages: ['button', 'checkbox', 'form', 'input', 'label', 'picker', 'picker-view', 'radio', 'slider', 'switch', 'textarea']
- }, {
- id: 'nav',
- name: '导航',
- open: false,
- pages: ['navigator']
- }, {
- id: 'media',
- name: '媒体组件',
- open: false,
- pages: ['image', 'audio', 'video', 'camera']
- }, {
- id: 'map',
- name: '地图',
- pages: ['map']
- }, {
- id: 'canvas',
- name: '画布',
- pages: ['canvas']
- }, {
- id: 'open',
- name: '开放能力',
- pages: ['ad', 'open-data', 'web-view']
- }]
- },
- /**
- * 收缩核心代码
- */
- kindToggle(e) {
- const id = e.currentTarget.id
- const list = this.data.list
- for (let i = 0, len = list.length; i < len; ++i) {
- if (list[i].id === id) {
- list[i].open = !list[i].open
- } else {
- list[i].open = false
- }
- }
- /**
- * key和value名称一样时,可以省略
- *
- * list:list=>list
- */
- this.setData({
- list
- })
- }
- })
点击下载源码:示例-小程序展开收缩列表
微信小程序 - 展开收缩列表的更多相关文章
- 微信小程序开发-新闻列表之新闻列表绑定
微信小程序开发-新闻列表之新闻列表绑定开发教程: 1.效果图预览 2.准备工作 在拿到效果图后不要先急着去写代码,而是要去分析一下页面的整体结构,用什么方式定位和布局.小程序里建议使用flex布局,因 ...
- 微信小程序新闻信息列表展示
微信小程序信息展示列表 wxml <!-- 轮播图 --> <view class='haibao' bindtap="seeDetail" id="{ ...
- 微信小程序信息展示列表
微信小程序信息展示列表 效果展示: 代码展示: wxml <view class="head"> <view class="head_item" ...
- 基于微信小程序的用户列表点赞功能
代码地址如下:http://www.demodashi.com/demo/13997.html 一.前言 (1).适合人群 1.微信小程序开发者 2.前端工程师 3.想入门学习小程序开发的人员 4.想 ...
- 图解微信小程序---获取电影列表
图解微信小程序---获取电影列表 代码笔记 list跳转 第一步:编写前端页面获取相关的电影列表参数(对于显示参数不熟悉,可以先写js,通过console Log的方式获取我们电影的相关数据字段,后 ...
- 微信小程序,我的英雄列表
最近微信小程序炒得火热,就跟成都的这个房价一样.昨天我也尝试了一下,做了一个自己的英雄列表.今天将自己的制作过程记录于此. 1.下载微信开发者工具 官网链接:https://mp.weixin.qq. ...
- 微信小程序 - 文字收缩与展开
wxml <view class='containers'> <text class="content {{ellipsis?'ellipsis':'unellipsis' ...
- 小程序展开收缩文字demo
demo效果图: wxml 代码: <view class="{{ellipsis?'ellipsis':'unellipsis'}}">五险一金五五险一金险险一金五五 ...
- 微信小程序云开发-列表数据分页加载显示
一.准备工作 1.创建数据库nums,向数据库中导入108条数据 2.修改数据库表nums的权限 二.新建页面ListPaginated 1.wxml文件 <!-- 显示列表数据 --> ...
随机推荐
- mac系统终端下忽略大小写 与 git自动补全(git auto completion)
1.下载git-completion.bash 并放到home 目录下: curl https://raw.githubusercontent.com/git/git/master/contrib/c ...
- 【BZOJ 3133】 3133: [Baltic2013]ballmachine (线段树+倍增)
3133: [Baltic2013]ballmachine Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 148 Solved: 66 Descri ...
- 「THUWC 2017」随机二分图
「THUWC 2017」随机二分图 解题思路 : 首先有一个 \(40pts\) 的做法: 前 \(20pts\) 暴力枚举最终的匹配是怎样的,check一下计算方案数,后 \(20pts\) 令 \ ...
- POJ2222 Keywords Search AC自动机模板
http://acm.hdu.edu.cn/showproblem.php?pid=2222 题意:给出一些单词,求多少个单词在字符串中出现过(单词表单词可能有相同的,这些相同的单词视为不同的分别计数 ...
- 【推导】【贪心】【高精度】Gym - 101194E - Bet
题意:每个队伍有个赔率pi,如果你往他身上押x元,它赢了,那么你得到x+(1/pi)x元,否则你一分都得不到.问你最多选几支队伍去押,使得存在一种押的方案,不论你押的那几支队伍谁赢,你都能赚得到钱. ...
- bzoj 1857
三分,对于单凸的函数(单调的也可以),可以找出最值. 这道题可以感性认识一下...... /****************************************************** ...
- 使用Mysql慢查询日志对有效率问题的SQL进行监控
输入命令:show variables like 'slow%' 可以发现 slow_query_log 为 OFF(默认),表示未开启慢查询日志 slow_query_log_file 为慢查询日志 ...
- 快速开发一个自己的微信小程序
一.写在前面 1.为什么要学小程序开发? 对于前端开发而言,微信小程序因为其简单快速.开发成本低.用户流量巨大等特点,也就成了前端开发工程师必会的一个技能. 2.先看看小程序效果 (1)欢迎页 (2) ...
- IOS定位核心与地图
IOS定位核心与地图 Core Location以及Map框架包通常能给我们的应用程序添加定位和地图相关的服务.Core Location框架包通常是使用硬件设备来进行 ...
- Ubuntu环境下配置GCC
Ubuntu网络环境下安装GCC及其头文件步骤: 1.Ubuntu环境下配置GCC 刚装好的GCC什么都不能编译,因为没有一些必须的头文件,所以要安装build-essential,安装了这个包会安装 ...