微信小程序-九宫格gridView封装实现

大家好,刚开始玩微信小程序,实现了个九宫格gridView小封装,记录自己的学习历程,同时分享给大家希望带给大家一点方便。无入侵可以全局引用使用哦。
	扫一扫看是不是你想要的效果

在这里插入图片描述

组件部分代码:

wxml文件

<view class='grid-item-container'>
  <block wx:for="{{itemDatas}}" wx:key="index">
    <view class='grid-item-child' bindtap='clickItem' data-text="{{index}}">
      <view>
        <image class="grid-item-image" src="{{item.src}}" mode='widthFix'/>
        <text class='grid-item-label'>{{item.title}}</text>
      </view>
    </view>
  </block>
</view>

css样式

在这里插入代码片

/*
九宫格容器布局样式
*/
.grid-item-container {
display: -webkit-flex;
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
border-top: 1rpx solid #D9D9D9;
}

/*
item容器样式
*/
.grid-item-child {
display:flex;
display: -webkit-flex;
justify-content:center;
flex-direction: column;
flex-wrap: wrap;
float: left;
width: 33.33333333%;
height: 200rpx;
box-sizing: border-box;
background-color: #FFFFFF;
border-right: 1rpx solid #D9D9D9;
border-bottom: 1rpx solid #D9D9D9;
}

/*
icon样式
*/
.grid-item-image {
width: 40%;
display:flex;
display: -webkit-flex;
margin-left: 30%;
margin-top: 5rdx;
justify-content:center;
}

/*
文本样式
*/
.grid-item-label {
display:flex;
display: -webkit-flex;
justify-content:center;
color: #666;
font-size: 14px;
}

js文件

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    itemDatas: {
      type: Array
    }
  },

   /**
   * 页面数据源
   */
  data: {
    
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //itemt 点击
    clickItem(e){
      
         // 将最传递到页面
       this.triggerEvent('itemClick', {index:e.currentTarget.dataset.text}, {})
    }
  }
})

外部使用

<w-grid itemDatas="{{itemDatas}}" bind:itemClick="itemClick"></w-grid>

调用js文件

// pages/other.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
   
  },

  /**
   * 组件的初始数据
   */
  data: {
    itemDatas: [
       { src:"图标",
        url:"跳转页面"  
   }
  ]
  },

  /**
   * 组件的方法列表
   */
  methods: {
    itemClick(e){
      console.log(e.detail.index)
        //跳转 订阅列表页面
        wx.navigateTo({
          url: this.data.itemDatas[e.detail.index]["url"]
        })
    }
  }
})

结束,欢迎转载,欢迎大家评论区多提意见,觉得有帮助的可以关注支持我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值