欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序实现单选功能

程序员文章站 2023-08-17 13:56:45
初次接触js弄了好长时间才出来效果,但是还是觉的不做梦完美,希望有更好的方式进行交流;实现效果如下: 虽说这个小功能但是对于我这个新手来说还是有点难;具体代码如下: w...

初次接触js弄了好长时间才出来效果,但是还是觉的不做梦完美,希望有更好的方式进行交流;实现效果如下:

虽说这个小功能但是对于我这个新手来说还是有点难;具体代码如下:

wxml:

<view class="backgrout-bj">
  <view class="header">
    最多可增加4个功能入口
  </view>
  <view>
    <block wx:for="{{model}}">
       <view class="model-list" bindtap="selectclick" id="{{index}}">
         <view>
          <image class="middle-img" src="{{item.image}}"></image>
        </view>
         <view class="middle-title">
         <view><text>{{item.title}}</text></view>
           <view class="middle-sub"><text>{{item.sub_title}}</text></view>
         </view>
         <!--<view hidden="{{item.selectimage}}">
          <image src="../image/xuanze.png" class="seletedimage"></image>
         </view>-->
         <view wx:if="{{item.selectimage==true}}">
          <image src="../image/xuanze.png" class="seletedimage"></image>
         </view>
      </view>
     
    </block>
  </view>
</view>

从大的分科分为两个大块一个是上面的header  剩下的列表是另外一个部分,列表中又分为若干个小块,本打算写个模版,但是感觉这样更清晰 

wxss:

.backgrout-bj{
  
  flex-wrap: wrap;  
 
}
.backgrout-bj .header{
 
  display: block;
  font-size: 13px;
  text-align: center;
  color: orange;
  padding: 10px;
  width: 100%;
}
.model-list{
 
  border-bottom: 1px solid lightgrey;
  display: flex;
  align-items: center;
}
 
.middle-img{
  padding: 10px;
  width: 70px;
  height: 70px;
  display: block;
  flex: 1;
  overflow: hidden;
}
.middle-title{
 margin: 10px;
 display: block;
 
 
}
.middle-sub{
  font-size: 14px;
  color: lightgray;
  margin-top: 10px;
}
 
.seletedimage{
  width: 20px;
  height: 20px;
}

可能有些乱,希望大牛纠正;

js:

page({
 data:{
  // text:"这是一个页面"
  model:[
   { 
    image:'../image/guapai_icon.png',
    title:'挂牌',
    sub_title:'进行松香交易,松香买卖。。。',
    selectimage:false
   },
   { 
    image:'../image/tianjia_maoyi.png',
    title:'贸易',
    sub_title:'根据需求,快速的为您提供服务',
    selectimage:true
   }
  ]
 
 },
 selectclick:function(event){
  
   // this.data.model[event.currenttarget.id].selectimage
 
   for(var i = 0; i < this.data.model.length;i++){
    if(event.currenttarget.id == i){
    
    
       this.data.model[i].selectimage = true 
      }
      else
     {
      
       this.data.model[i].selectimage = false
     }
 
   }
    this.setdata(this.data)
 
 },
 onload:function(options){
  // 页面初始化 options为页面跳转所带来的参数
 
 },
 onready:function(){
  // 页面渲染完成
 },
 onshow:function(){
  // 页面显示
 },
 onhide:function(){
  // 页面隐藏
 },
 onunload:function(){
  // 页面关闭
 }
})

主要思路为循环数组的所有原素,当点击的id和i值想等的时候,就把里面的selectimage属性改为true 其他的改为false,个人感觉这种写法有一定的缺陷,希望有大牛指正。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。