详解微信小程序Radio选中样式切换

图片网址: http://files.jb51.net/file_images/article/201707/201776144558704.gif?201766144616

<!--index.wxml-->
< view class = "container" >
  < radio-group bindchange = "radioCheckedChange" >
   < view class = "flex_box" >
    < view class = "flex_item" >
     < label class = "{{radioCheckVal==0?'active':''}}" >人气
      < radio value = "0"  hidden = "true" ></ radio >
     </ label >
    </ view >
    < view class = "flex_item" >
     < label class = "{{radioCheckVal==1?'active':''}}" > 销量
      < radio value = "1" hidden = "true" ></ radio >
     </ label >
    </ view >
    < view class = "flex_item" >
     < label class = "{{radioCheckVal==2?'active':''}}" > 价格↑
      < radio value = "2" hidden = "true" ></ radio >
     </ label >
    </ view >
   </ view >
  </ radio-group >
</ view >

index.wxml代码中可以看到,首先隐藏radio的原始样式,利用lable点击来触发radioCheckedChange事件监听函数。

/**index.wxss**/
radio-group{
  width: 100%;
}
.flex_box{
  display: flex;
  width: 100%;
  background: #eee;
}
.flex_item{
  flex: 1;
  text-align: center;
}
.flex_item label{
  padding: 10px 0;
  display: inline-block;
  width: 50%;
}
.flex_item label.active{
  color: red;
  border-bottom: 2px solid red;
   
}

index.wxss中,使用flex布局让它们平分,并定义“active”样式。

//index.js
//获取应用实例
var app = getApp()
Page({
  data: {
   radioCheckVal:0
  },
  radioCheckedChange: function (e){
   this .setData({
    radioCheckVal:e.detail.value
   })
  }
})

index.js中,定义一个接收radio选中值的变量radioCheckVal,当监听事件被触发时,记录下被选中的radio value。

最重要的一点是这一句:

?
<label class= "{{radioCheckVal==0?'active':''}}" >人气
     <radio value= "0"  hidden= "true" ></radio>
    </label>

利用简单的判断表达式,取data中被选中的radio,判断当==当前radio value值时,为lable添加上“active”选中样式。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值