微信小程序全选多选效果实现代码解析


Posted in Javascript onJanuary 21, 2020

这篇文章主要介绍了微信小程序全选多选效果实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

效果图:

微信小程序全选多选效果实现代码解析

wxml代码:

<view class="memberList">
 <view class="allSelect_box" bindtap='selectAll'>
  <checkbox class="checkbox" checked="{{selectilall}}"/>
  <text class="allSelect">全选</text>
 </view>
 <view wx:for="{{list}}">
  <view class="member_box" data-index="{{index}}" data-name="{{item.id}}" bindtap='select'>
   <checkbox class="checkbox" checked="{{item.checked}}"/>
   <image src="../../assets/img/user_img.jpg" mode="widthFix" class="avatar"></image>
   <view>
    <view class="applicant_name">汪小涵 <text>管理员</text> </view>
    <view class="approval_state">总监</view>
   </view>
  </view>
 </view>
</view>

wxss代码:

.memberList{
 background:#fff;
 padding:0 35rpx 0 28rpx;
}
.allSelect_box{
 line-height:90rpx;
 border-bottom:1rpx solid #F5F5F5;
}
.checkbox{
 transform: scale(0.7,0.7);
}
.member_box .checkbox{
 margin-top: 15rpx;
}
checkbox .wx-checkbox-input.wx-checkbox-input-checked {
 color:#fff;
 background: #6669e3;
 border-color:#6669e3;
}
.allSelect{
 margin-left:15rpx;
 vertical-align:middle;
}
.member_box{
 padding-bottom:30rpx;
 display: flex;
 border-bottom:2rpx solid #EBEBEB;
 padding:20rpx 0 20rpx 0;
}
.avatar{
 width:100rpx;
 border-radius:50%;
 margin-left:15rpx;
}
.applicant_name{
 font-size:34rpx;
 padding:0 0 15rpx 30rpx;
}
.applicant_name text{
 color:#fff;
 background:#6669e3;
 font-size:28rpx;
 padding:5rpx 10rpx;
 border-radius:10rpx;
 margin-left:15rpx;
}
.approval_state{
 color:#8D8D8D;
 font-size:28rpx;
 padding-left: 30rpx;
}

js代码:

data: {
  list: [
   { id: 1, name: 1, checked: false },
   { id: 2, name: 2, checked: false },
   { id: 3, name: 3, checked: false },
   { id: 4, name: 4, checked: false },
  ],
  selectilall: false
 },
//单选
 select: function (e) {
  let selectValue = e.currentTarget.dataset.name
  let index = e.currentTarget.dataset.index;
  let list = this.data.list
  let newli = 'list[' + index + '].checked';
  this.setData({
   [newli]: !this.data.list[index].checked
  })
  let num = 0;
  for(var i=0;i<this.data.list.length;i++){
   if(this.data.list[i].checked){
    num++;
   }
  }
  if(num == this.data.list.length){
   this.setData({
    selectilall: true
   })
  }else{
   this.setData({
    selectilall: false
   })
  }
 },
 //全选,取消全选
 selectAll: function (e) {
  let list = this.data.list;
  let selectilall = this.data.selectilall;
  if (selectilall == false) {
   for (let i = 0; i < list.length; i++) {
    let newli = 'list[' + i + '].checked';
    this.setData({
     [newli]: true,
     selectilall: true
    })
   }
  } else {
   for (let i = 0; i < list.length; i++) {
    let newli = 'list[' + i + '].checked';
    this.setData({
     [newli]: false,
     selectilall: false
    })
   }
  }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS加ASP二级域名转向的代码
May 17 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
Jun 02 Javascript
JS实现一键回顶功能示例代码
Oct 28 Javascript
javascript删除一个html元素节点的方法
Dec 20 Javascript
jQuery的context属性用法实例
Dec 27 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
Aug 21 Javascript
分享bootstrap学习笔记心得(组件及其属性)
Jan 11 Javascript
JQuery中Ajax的操作完整例子
Mar 07 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
Node.js进阶之核心模块https入门
May 23 Javascript
vue自定义指令directive的使用方法
Apr 07 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
Aug 20 Javascript
js判断在哪个浏览器打开项目的方法
Jan 21 #Javascript
浅谈Vue.use到底是什么鬼
Jan 21 #Javascript
ant-design-vue 快速避坑指南(推荐)
Jan 21 #Javascript
Ant Design Vue 添加区分中英文的长度校验功能
Jan 21 #Javascript
python虚拟环境 virtualenv的简单使用
Jan 21 #Javascript
详解vue中v-bind:style效果的自定义指令
Jan 21 #Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 #Javascript
You might like
php 一元分词算法
2009/11/30 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
javascript常用经典算法详解
2017/01/11 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
py中的目录与文件判别代码
2008/07/16 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
对python中GUI,Label和Button的实例详解
2019/06/27 Python
Django  ORM 练习题及答案
2019/07/19 Python
Python post请求实现代码实例
2020/02/28 Python
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
高中毕业生自我鉴定
2013/11/03 职场文书
中层干部岗位职责
2013/12/18 职场文书
优秀的计算机专业求职信范文
2013/12/27 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
Python数据结构之队列详解
2022/03/21 Python
MySQL Server层四个日志的实现
2022/03/31 MySQL
Windows7下FTP搭建图文教程
2022/08/05 Servers