微信小程序循環,每行固定數目,自動換行

需求

根據後臺傳入或者前端生成的數據,每行固定顯示N個,多出來的自動換行,在我的項目中需要的每行固定顯示爲2個。
Demo地址:git鏈接
如圖所示:
在這裏插入圖片描述

思路

以每行固定兩個,自動換行爲例子。
先判斷數據的條數,根據數據的條數去判斷有幾行,然後在行內展示兩條,根據第幾行,第幾條來取數據是第幾條。如果不能理解,請看代碼。或者GIT查看

頁面目錄

在這裏插入圖片描述
其中WXS(WeiXin Script)是小程序的一套腳本語言,結合 WXML,可以構建出頁面的結構。
index.wxs文件內容

/*index.wxs
*獲取行數,
*/
var filters = {
  toFix: function (value) {
    return parseInt(value);  //此處爲獲取整數,不進行四捨五入操作
  }
}
module.exports = {
  toFix: filters.toFix,
}

index.js文件內容

/*index.js
*獲取數據
*/
Page({
  data: {
    listData:[
      { 'text': '09.30~10.06' },
      { 'text': '10.07~10.13' },
      { 'text': '10.14~10.20' },
      { 'text': '10.21~10.27' },
      { 'text': '10.28~11.03' }
    ]
  },
  onLoad: function () {
   
  },
})

index.wxml文件內容

<!--獲取文件index.wxs文件的函數-->
<wxs module="filters" src="index.wxs"></wxs>
<!--判斷有幾行,根據行數目,第幾行index參數賦值在i變量上-->
<block wx:for="{{listData.length%2?filters.toFix(listData.length/2)+1:listData.length/2}}" wx:for-index="i" wx:for-key="{{i}}" wx:key="i">
  <view class="demo-row">
  <!--每行循序2次,index參數賦值在j變量上-->
    <block wx:for="{{2}}" wx:for-index="j" wx:for-item="item_j" wx:for-key="key_j" wx:key="j">
      <!--此時數據的條數爲i*2+j行數*2+第幾行-->
      <block wx:if="{{listData[i*2+j].text}}">
        <view class="demo-item">
          <view class="screen-data" data-index="{{i*2+j}}">{{listData[i*2+j].text}}</view>
        </view>
      </block>
    </block>
  </view>
</block>

index.wxss文件內容

<!--獲取文件index.wxs文件的函數-->
.demo-row{
  display: flex;
  justify-content:flex-start;
}
.demo-item{
  margin-top: 24rpx;
  width: 50%;
}
.demo-item .screen-data{
  margin: 12rpx;
  padding: 12rpx;
  text-align: center;
  border:1px solid #ccc;
  border-radius: 8rpx;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章