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


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 相关文章推荐
jQuery使用动态渲染表单功能完成ajax文件下载
Jan 15 Javascript
jQuery中after的两种用法实例
Jul 03 Javascript
JsRender for index循环索引用法详解
Oct 31 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
浅谈Jquery为元素绑定事件
Apr 27 Javascript
js获取图片宽高的方法
Nov 25 Javascript
node.js中 stream使用教程
Aug 28 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
JS实现unicode和UTF-8之间的互相转换互转
Jul 05 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 Javascript
详解vue引入子组件方法
Feb 12 Javascript
公众号SVG动画交互实战代码
May 31 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 session会话的安全性分析
2011/09/08 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
Python并行分布式框架Celery详解
2018/10/15 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Python 字符串、列表、元组的截取与切片操作示例
2019/09/17 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
python计算导数并绘图的实例
2020/02/29 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
残疾人创业典型事迹
2014/02/01 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
房屋转让协议书
2014/04/11 职场文书
参赛口号
2014/06/16 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏