选中当前选中项

作者: 冫笙 | 来源:发表于2018-04-14 17:56 被阅读45次

需求:在data里取数据在页面渲染

图片来自简书

效果应该是这样的点击谁出现谁的子集  而不是全部出来。

图片来自简书

刚接触小程序的时候估计大部分都会遇见。当时我也是查阅很多资料才解决。

简单说下思路:首先要实现需求方法肯定是根据状态来更改子集的显示隐藏。

然后我们可以根据点击事件获取数组的唯一标识(id/数组下标)然后判断点击的是谁 改变其数组里 open变量的状态(我在数组里定义了一个变量(open 默认是false 隐藏状态))来实现其显示及隐藏。下面是我做的效果图。

图片来自简书 图片来自简书

wxml:(这个直接复制不了代码  ε=(´ο`*)))唉  一点点手敲)

 <view class='context' wx:for="{{userMessage}}" wx:key="{{item.id}}"><view class='radius' data-id='{{item.id}}' bindtap='clickTitleHide'><text>{{item.title}}><image mode="widthFix" style='width:30rpx;' src="{{item.open? '../../images/bottom.png':'../../images/right.png'}}"></view><view class="c-box {{item.open? 'c-box-show':''}}" ><block wx:for="{{item.child}}" wx:for-item="child" ><navigator url='../{{child.url}}'><view class='radius-child' bindtap='checkChild' data-id='{{item.id}}'><image mode='widthFix' style='width:30rpx;margin-right:15rpx;' src='../../images/right.png'><text>{{child.name}}></view></navigator></block></view></view>

wxss:

/*内容 */

.c-box{

  height: 0;overflow: hidden;

  opacity: 0;

  transform: translateY(-50%);

  transition: .3s; }

.c-box::before{

  content: " ";

  position: absolute;

  left: 30rpx;

  top: 0;

  right: 30rpx;

  height: 1px;

  color: #D8D8D8;}

.c-box-show{

  opacity: 1;

  height: auto;

  transform: translateY(0);}

.context{

  margin:0 26rpx 20rpx 26rpx;

  background: #fff;overflow: hidden;

  border-radius:8rpx;

  transition: opacity .3s;}

.radius{

  justify-content: space-between;

  align-items: center;

  font-size: 30rpx;

  color: rgb(51, 51, 51);

  padding:20rpx 16rpx 20rpx 26rpx;

  border-bottom: 2rpx solid rgb(236, 236, 236);}

.radius-child{

  align-items: center;

  font-size: 28rpx;

  background: #fff;

  padding:20rpx 16rpx 20rpx 26rpx;

  color: rgb(51, 51, 51);

  border-bottom: 2rpx solid rgb(248,248,248);}

/*客服  */

.contact{

  height:80rpx;

  opacity:0;

  margin-top:-79rpx;

  width: 100%; }

js:

data: {

    userInfo:[],

    userMessage:[{

      id:'kaquan',

      title:'卡券管理',

      open: false,

      child:[{

        name:"我的优惠券",

        url:"coupon/coupon"}

        ]

    },{

        id: 'sye',

        title: '微预约',

        open: false,

        child: [{

          name:"我的预约",

          url:"userMake/make"}

        ]

    },{

        id: 'shopping',

        title: '联系我们',

        open: false,

        child: [{

          name:"客服热线",

          url:false}]

    }],

    open:false

  },

checkChild:function(e){

    var val = e.currentTarget.dataset.id

    if (val =="shopping"){

      wx.makePhoneCall({

        phoneNumber: app.globalData.tel //仅为示例,并非真实的电话号码

      })

    } else if (val =="yuyue"){

      this.setData({

        contact:true

      })

    }else{

      return false;

    }

  },

官方组件dome   https://github.com/k425996/wxAssembly   加我QQ:17472544  有些小程序教程视频 领取

相关文章

  • 选中当前选中项

    需求:在data里取数据在页面渲染 效果应该是这样的点击谁出现谁的子集 而不是全部出来。 刚接触小程序的时候估计大...

  • Mac 查看当前选中多少项以及选中文件的大小

    一、概述 Mac 查看当前选中多少项以及选中文件的大小 二、实现方式: 快捷键:option+command+i

  • jq select 的取值赋值

    select 取值: $('select').val(); //获取当前选中项option的value $("se...

  • C#控件TreeView

    1、右键选中当前行: 2、获取节点数量: 3、获取当前选中节点:

  • JQuery和JS—操作select

    JQuery部分 1.根据value设置选中 2.根据text设置选中 3.获取选中项的value 4.获取选中项...

  • phpstorm提高效率的使用方法及设置

    快捷键:CTRL + D 复制当前行到下一行 或 复制选中内容到选中内容之后CTRL + Y 删除当前行或选中...

  • 编辑检测项目

    通信ordno:当前选中样品arrSelections:当前选中检测项目 业务项目与指标组合,不能选择同个项目不同...

  • iOS UITabBar 风格定制

    一. 定制项 图标采用原色.(即不要 TabBar 本身背景色 选中项背景色改变4.选中项文字有所不同5.未选中项...

  • JS 实现 Checkbox 中按住 Shift 的多选功能

    操作方法 1.选中 A 项2.按下 Shift3.再选中 B 项4.A-B 之间的所有项都被选中或者取消 实现方法...

  • 无标题文章

    编辑篇 Ctrl(Command)+C复制当前行或选中的内容 Ctrl(Command)+D粘贴当前行或选中的内容...

网友评论

    本文标题:选中当前选中项

    本文链接:https://www.haomeiwen.com/subject/kkblkftx.html