微信小程序改变单选多选按钮样式

/*  重写 checkbox 样式  */

/* 未选中的 背景样式 */

checkbox .wx-checkbox-input {
  border-radius: 50%; /* 圆角 */
  width: 40rpx; /* 背景的宽 */
  height: 40rpx; /* 背景的高 */
}

/* 选中后的 背景样式 (红色背景 无边框 可根据UI需求自己修改) */

checkbox .wx-checkbox-input.wx-checkbox-input-checked {
 border-color: #333; 
  background: #333;
}

/* 选中后的 对勾样式 (白色对勾 可根据UI需求自己修改) */

checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
  border-radius: 50%; /* 圆角 */
  width: 40rpx; /* 选中后对勾大小,不要超过背景的尺寸 */
  height: 40rpx; /* 选中后对勾大小,不要超过背景的尺寸 */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24rpx; /* 对勾大小 30rpx */
  color: #fff; /* 对勾颜色 白色 */
  background: transparent;
  transform: translate(-50%, -50%) scale(1);
  -webkit-transform: translate(-50%, -50%) scale(1);
}
/*  重写 radio 样式  */
/* 未选中的 背景样式 */
radio .wx-radio-input{
   border-radius: 50%;/* 圆角 */
   width: 40rpx;
   height: 40rpx;
}
/* 选中后的 背景样式 (红色背景 无边框 可根据UI需求自己修改) */
radio .wx-radio-input.wx-radio-input-checked{
   border-color: #333; 
   background: #333;
}
/* 选中后的 对勾样式 (白色对勾 可根据UI需求自己修改) */
radio .wx-radio-input.wx-radio-input-checked::before{
   border-radius: 50%;/* 圆角 */
   width: 40rpx; /* 选中后对勾大小,不要超过背景的尺寸 */
   height: 40rpx; /* 选中后对勾大小,不要超过背景的尺寸 */
   display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24rpx; /* 对勾大小 30rpx */
   color:#fff; /* 对勾颜色 白色 */
   background: transparent;
   transform:translate(-50%, -50%) scale(1);
   -webkit-transform:translate(-50%, -50%) scale(1);
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序中可以通过使用组件来实现单、多和全功能。 单: 可以使用radio组件来实现单功能。radio组件需要与radio-group组件配合使用。当用户点击其中一个radio后,radio-group会自动将其它的radio项取消中。 多: 可以使用checkbox组件来实现多功能。checkbox组件需要与checkbox-group组件配合使用。当用户点击某个checkbox时,checkbox-group会自动将其它的checkbox项保持原有状态。 全: 可以使用checkbox组件来实现全功能。需要在checkbox组件中加入一个value属性,并将其绑定到全按钮的checked属性上。当用户点击全按钮时,将全按钮的状态传递给所有的checkbox项即可。 示例代码: 单: ``` <radio-group> <label wx:for="{{list}}" wx:key="{{index}}"> <radio value="{{item.value}}">{{item.name}}</radio> </label> </radio-group> ``` 多: ``` <checkbox-group> <label wx:for="{{list}}" wx:key="{{index}}"> <checkbox value="{{item.value}}">{{item.name}}</checkbox> </label> </checkbox-group> ``` 全: ``` <checkbox value="all" checked="{{allChecked}}" bindchange="onAllChange">全</checkbox> <checkbox-group> <label wx:for="{{list}}" wx:key="{{index}}"> <checkbox value="{{item.value}}" checked="{{item.checked}}">{{item.name}}</checkbox> </label> </checkbox-group> ``` 其中,allChecked和item.checked为数据中的属性,需要在js文件中定义和更新。onAllChange为全按钮的change事件处理函数,代码如下: ``` onAllChange: function (e) { const isChecked = e.detail.value.length > 0; const list = this.data.list.map(item => { item.checked = isChecked; return item; }); this.setData({ allChecked: isChecked, list }); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值