微信小程序 radio-group(排列) 及事件绑定、点击切换样式

一、这里的测试页面是参照(小打卡的-tab页“发现”)来设计的
wxml代码:

<import src='../userlist/listItem.wxml' />
<!--导入列表项模板-->

<view class='window'>
   <view class='searchbox' bindtap='search'>
      <view class='searchbox_in'>
         <icon class='search_img' type='search' size='13'></icon>
         <text class='search_txt'>搜索</text>
      </view>
   </view>
   <scroll-view>
      <view class='rg_view'>
         <radio-group class='rg' bindchange='radiochange'><!-- 事件绑定 -->
            <view class="class_r_g" wx:for="{{classes_array}}">
               <radio id="{{item.name}}" hidden value="{{item.name}}" checked="{{item.checked}}" data-id='item.index'></radio>           
               <label class="label-2__text" for="{{item.name}}">
                  <text class='{{item.checked?"checkedt":"normalt"}}'>{{item.name}}</text><!-- 根据每一项的checked属性来切换点击radio中的文本的点击效果 -->
               </label>
            </view>
         </radio-group>
      </view>

      <!-- 引入列表模板 -->
      <view wx:for="{{arrays}}">
         <template is="list" data="{{id:index,path:item.path,title:item.title,content:item.content,slogan:item.slogan}}" />
      </view>
   </scroll-view>
</view>

模板wxml代码:

<template name='list'>
   <view style="display:flex;flex-direction:row;margin-top:5px;background-color:#ffffff" 
      bindtap='readDetail' data-id='{{id}}'>
      <image style="width:40%;height:80px;margin-left:5px;margin-right:5px" src='{{path}}' mode='widthFix'/>
      <view style="display:flex;flex-direction:column;margin-left:10px;justify-content: space-between;padding:3px 0px 3px 0px">
         <text style='font-size:16px'>{{title}}</text>
         <text style='font-size:15px;padding:2px 2px;color:red;border:1px solid red'>{{slogan}}</text>
         <text style='font-size:16px'>{{content}}</text> 
      </view>
   </view>
</template>

wxss代码:(其实在这里已经有了点击切换样式了)

/* pages/find/find.wxss */

page {
   width: 100%;
   height: 100%;
}

.window {
   width: 100%;
   height: 100%;
}

.searchbox {
   width: 100%;
   display: flex;
   flex-direction: row;
   justify-content: center;
   background-color: #f6f6f6;
}

.searchbox_in {
   height: 35px;
   width: 720rpx;
   margin: 8px 10px;
   background-color: white;
   border-radius: 8px;
   display: flex;
   flex-direction: row;
   justify-content: center;
   align-items: center;
}

.search_img {
   width: 12px;
   height: 13px;
}

.search_txt {
   margin-left: 6px;
   font-size: 13px;
   color: #999;
}

.classesbox {
   display: flex;
   flex-direction: row;
   justify-content: space-between;
}

.classes_item {
   padding: 3px auto 3px auto;
   border: #e6e6e6 1px solid;
   margin: 5px;
   border-radius: 4px;
   font-size: 14px;
   width: 100%;
}

.rg_view {
   padding: 6px;
   background-color: #fff;
}

/* 注意点:使用columns时,每一行中的组件本身的高度不能高于组件所在行的行高,
否则会发现组件的好似被切割成2块或多块了  */
.rg {
   width: 100%;
   height: 100%;
   columns: 4;
   column-gap: 20rpx;
   letter-spacing: 5px;
   line-height: 28px;
}

/* 
   注意点:columns分列后,最好使用margin-bottom控制行间距,
   margin-top会导致第一项与后面的项不一致,很丑
  */
.class_r_g {
   text-align: center;
   width: 100%;
   margin-bottom: 5px;
}

/* radio文本的点击效果  */
.checkedt {
   color: #40E0D0;
   border: #40E0D0 1px solid;
   border-radius: 4px;
   font-size: 14px;
   padding: 3px 18px;
}

/* 
   radio文本的默认效果  
   注意点:组件本身的高度不能高于组件所在行的行高,否则会发现组件的好似被切割成2块或多块了
*/
.normalt {
   color: #666666;
   border: #e6e6e6 1px solid;
   border-radius: 4px;
   font-size: 14px;
   padding: 3px 18px;
}

js代码:

/**
    * 页面的初始数据
    */
   data: {
      arrays: [{
         id: 0,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522750024551&di=2a3059f66cada3c3fcf09ed6fbfa7ff0&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2Feaf81a4c510fd9f9a499b16e2f2dd42a2834a42f.jpg',
         title: '大源中央公园',
         slogan: '每天优惠点',
         content: '大源'
      },
      {
         id: 1,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749957085&di=f63a53aa11dc3d2c6ee656ecf26a734e&imgtype=0&src=http%3A%2F%2Fimg.pconline.com.cn%2Fimages%2Fupload%2Fupc%2Ftx%2Fphotoblog%2F1109%2F09%2Fc1%2F8912689_8912689_1315533674830.jpg',
         title: '花园国际',
         slogan: '每天阅读一点,心情愉悦',
         content: '花儿'
      },
      {
         id: 2,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749957089&di=52d63a22521f4928cefc91097853bae4&imgtype=0&src=http%3A%2F%2Fscimg.jb51.net%2Fallimg%2F140812%2F11-140Q21045523K.jpg',
         title: '大源中央公园',
         slogan: '陪你共读,是我爱你的方式',
         content: '大源'
      },
      {
         id: 3,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749848712&di=c12381be5ff7dea1de88bbdf0128eb23&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2F1c950a7b02087bf407286efaf8d3572c10dfcfd8.jpg',
         title: '大源中央公园',
         slogan: '每天一首经典诗词',
         content: '大源'
      },
      {
         id: 4,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749848714&di=5a60edbf62ceff57de82e46de6f28b35&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2Fb219ebc4b74543a9f58db25114178a82b801149c.jpg',
         title: '大源中央公园',
         slogan: '每天一首经典诗词',
         content: '大源'
      },
      {
         id: 5,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749848720&di=96beca6c27cf406900332cdd7bda8515&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimage%2Fc0%253Dpixel_huitu%252C0%252C0%252C294%252C40%2Fsign%3Dc5f68d1bb81bb0519b29bb685f02bfd8%2F10dfa9ec8a1363270e51430a9a8fa0ec08fac74f.jpg',
         title: '大源中央公园',
         slogan: '每天一首经典诗词',
         content: '大源'
      },
      {
         id: 6,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749957089&di=52d63a22521f4928cefc91097853bae4&imgtype=0&src=http%3A%2F%2Fscimg.jb51.net%2Fallimg%2F140812%2F11-140Q21045523K.jpg',
         title: '大源中央公园',
         slogan: '每天一首经典诗词',
         content: '大源'
      },
      {
         id: 7,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749848712&di=c12381be5ff7dea1de88bbdf0128eb23&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2F1c950a7b02087bf407286efaf8d3572c10dfcfd8.jpg',
         title: '大源中央公园',
         slogan: '每天一首经典诗词',
         content: '大源'
      },
      {
         id: 8,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749848714&di=5a60edbf62ceff57de82e46de6f28b35&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2Fb219ebc4b74543a9f58db25114178a82b801149c.jpg',
         title: '大源中央公园',
         slogan: '每天一首经典诗词',
         content: '大源'
      },
      {
         id: 9,
         path: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1522749848720&di=96beca6c27cf406900332cdd7bda8515&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimage%2Fc0%253Dpixel_huitu%252C0%252C0%252C294%252C40%2Fsign%3Dc5f68d1bb81bb0519b29bb685f02bfd8%2F10dfa9ec8a1363270e51430a9a8fa0ec08fac74f.jpg',
         title: '大源中央公园',
         slogan: '每天一首经典诗词',
         content: '大源'
      },],

      //radio-group数据源
      classes_array: [{ name: '全部', checked: false }, { name: '阅读', checked: false }, { name: '外语', checked: false }, { name: '亲子', checked: false }, { name: '技能', checked: false }, { name: '习惯', checked: false }, { name: '运动', checked: false }, { name: '艺术', checked: false }]
   },

   //搜索事件
   search: function () {
      console.log("搜索");
   },

   //点击radio-group中的列表项事件
   radiochange: function (res) {
      console.log("选中的标签:" + res.detail.value);
      var arrs = this.data.classes_array;
      var that = this;
      for (const x in arrs) {
         if (arrs[x].name == res.detail.value) {
            arrs[x].checked = true;
         } else {
            arrs[x].checked = false;
         }
      }
      that.setData({
         classes_array: arrs
      })
   },

有问题可以看下里面的备注哈,备注的很清楚了
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值