微信官方给的复选框太丑,想要样式多样需要我们自己定义

先来张效果图

wxml循环生成选框,从js里取数据,根据checked的值,改变标签的样式类

<view class="two {{showView?'hide':'show'}} the-label"><view class='list'><block wx:for="{{items}}" wx:for-item="v" wx:key="k" wx:for-index="index"><!-- wx:for绑定数组 wx:for-item指定数组当前元素的变量名 index指定下标的变量名 --><view class="li {{v.checked?'cur':''}}" data-index="{{index}}" data-value="{{v.value}}" bindtap="checkLabs"><label class='ti'>{{v.value}}</label><image class="zi {{v.checked?'cur':''}}" data-index="{{index}}" data-value="{{v.value}}" bindtap="switchtap" src="../imge/duihao.png"></image></view></block><!-- <view class="all_btn" bindtap="all">全选</view> --></view>

js选中累加,改变数据数组中的checked的布尔值

Page({data:{arr:[],items: [{ value: '星期一', checked:'' },{ value: '星期二', checked:'' },{ value: '星期三', checked:'' },{ value: '星期四', checked: '' },{ value: '星期五', checked: '' },{ value: '星期六', checked: '' },{ value: '星期日', checked: ''},],},checkLabs(e) {var that = this,index = e.currentTarget.dataset.index,value = e.currentTarget.dataset.value,items = that.data.items,arr = that.data.arr,val = items[index].checked, //点击前的值limitNum = 7-this.data.num,curNum = 0; //已选择数量//选中累加for (var i in items) {if (items[i].checked) {curNum += 1;}that.setData({curr: curNum+1})}if (!val) {if (curNum == limitNum) {wx.showModal({content:'选择数量不能超过'+(limitNum)+'个',showCancel: false})return;}arr.push(value);} else {for (var i in arr) {if (arr[i] == value) {arr.splice(i, 1);}}}items[index].checked = !val;that.setData({items: items,arr: arr})},})

cs根据checked的状态,改变单个框体的样式类`

.the-label{margin-left: 65rpx;width: 95%;height: 120px;margin-top: 50px;
}
.the-label .th{width: 100%; overflow: hidden;
}
.the-label .th .ti{ font-size: 30rpx; color: white
}
.the-label .th .tt{color: white; font-size: 24rpx;}
.the-label .list{width: 100%;overflow:hidden;margin-top:-60rpx;
}
.the-label .list .li{padding: 0 32rpx;height: 70rpx; line-height: 60rpx; border: 1px solid #3f3f3f;  border-radius: 10rpx; overflow: hidden; font-size: 26rpx; color: black; float: left; margin: 0 17rpx 17rpx 0; position: relative;
}
.the-label .list .li .zi{display: none;width: 27px;height: 24px;position: absolute;top: 45px;left: 116px;
}
.the-label .list .cur .zi.cur{display: block;width: 27rpx;height: 24rpx;position: absolute;top: 48rpx;left: 116rpx;
}
.the-label .list .li.cur{ color: #3f3f3f; border-color: #df7e05;font-weight: bold
}

微信小程序自定义复选框相关推荐

  1. 微信小程序之复选框打对号

    微信小程序之复选框checkbox打对号 一.实现效果 二.实现原理: 在父view中嵌套另一个子view. 父view显示所有边框. 子view显示右边框和下边框并顺时针旋转45度.运用margin ...

  2. 【微信小程序---checkbox复选框讲解】

    效果: checkbox注意点 外围要包裹checkbox-group使用  bindchange事件也是在这个标签内 wx:for 循环遍历list中的每一个item wx:key="id ...

  3. 微信小程序自定义授权弹框

    微信小程序自定义授权弹框 最近微信获取用户信息的接口有调整,就是这货:wx.getUserInfo(OBJECT),文档描述如下: 此接口有调整,使用该接口将不再出现授权弹窗,请使用 <butt ...

  4. 微信小程序实现多选框+自定义样式(checkbox)

    1.实现效果 2.实现原理 小程序多选框 微信小程序为我们提供了checkbox-group,多项选择器,内部由多个checkbox组成. checkbox: 3.实现代码 <!--pages/ ...

  5. 微信小程序——自定义下拉框

    微信小程序本身并没有自带的下拉框组件,我们可以通过view标签自定义一个下拉框.(仅供参考) 目录 文件目录 实现效果 实现逻辑 设置数据 设置默认选项 实现弹出下拉框 提供选项值 设置所选值 源码 ...

  6. 微信小程序获取多选框选中值和选中值对应的id

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 官方文档中只有获取多选框的值的方法,但是我需要获取选中的值同时还要获取选中值对应的id,但是又不能操作DOM获 ...

  7. 支付宝小程序获取复选框选中值id,使其显示且可编辑

    问题概述 在做支付宝小程序编辑表单时,需要将用户之前填.选的信息显示出来后再编辑.这里针对复选框选中值的获取显示,通过服务端发送请求后拿到的选中id,显示选中值并且可编辑. axml代码片段 < ...

  8. 小程序实现复选框全选和取消全选

    页面逻辑是,在小程序复选框列表页面上单独放一个复选框用于全选(设置class为position: fixed;即可固定在页面上),当点击全选时,页面所有复选框都会勾上,再次点击后页面所有复选框的打√都 ...

  9. 微信小程序自定义picker弹框组件

    要有遥不可及的梦想,也要有脚踏实地的本事.----------- Grapefruit.Banuit Gang(香柚帮) 柚子写项目遇到了一个问题,就是微信小程序官方文档上面的弹框组件picker,它 ...

最新文章

  1. SVN的Windows和Linux客户端操作详解
  2. 推荐最近收藏的几篇文章(r12笔记第85天)
  3. 如何利用隐写术配合四个重定向连接到C2服务器
  4. LBP(局部二值模式)特征提取原理
  5. [C/C++] constexpr函数
  6. matlab2016b ubuntu命令行安装 + matconvnet的安装
  7. linux文件目录解释
  8. 我的Dll(动态链接库)学习笔记(转)
  9. 【ArcGIS|空间分析】焦点统计 (类型)
  10. java二次开发考勤机_浩顺AC671指纹考勤机二次开发(demo)
  11. plsql使用存储过程添加数据
  12. IEEE论文参考文献格式(bib)
  13. bzoj 1853: [Scoi2010]幸运数字 容斥
  14. MySQL索引之全文索引(FULLTEXT)
  15. 创建第一个SpringBoot项目
  16. 《代码整洁之道》读后感及总结
  17. 中国区块链行业人才缺口将达75万以上
  18. python列表两两相减_笨办法学python(二)数值、变量以及运算
  19. [2021 蓝帽杯]杰克与肉丝
  20. ufs2.2 协议扫盲(十一)

热门文章

  1. Unity实时接收麦克风音频将音频可视化类卡拉OK效果展示
  2. 盘点一个使用Python实现Excel中找出第一个及最后一个不为零的数,它们各自在第几列
  3. 氢能产业进入提速阶段,重塑科技将持续发力氢能应用市场
  4. 2022年湖南省自考考试学前儿童保育学练习题及答案
  5. hdu4528小明系列故事——捉迷藏(bfs)
  6. 【政策动态】央行印发《金融科技发展规划(2022-2025年)》:推动数据有序共享,激活数据要素潜能 | 冲量划重点
  7. linux开启监听模式抓空口包,运维实战家之设备报文捕获技巧
  8. Log4j 使用方法和输出格式控制--log4j的PatternLayout参数含义
  9. 加减号控制input框里数字的js
  10. 【简记】no matching manifest for linux/arm64/v8 in the manifest list entries