欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

uniapp自定義多列瀑布流組件項目實戰(zhàn)總結(jié)

 更新時間:2023年09月20日 09:23:53   作者:MarkGuan  
這篇文章主要為大家介紹了uniapp自定義多列瀑布流組件實戰(zhàn)總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

導語

有時候展示圖片等內(nèi)容,會遇到圖片高度不一致的情況,這時候就不能使用等高雙列或多列展示了,這時候會用到瀑布流的頁面布局,下面就一起探討一下瀑布流的實現(xiàn)方法。

準備工作

  • pages/index文件夾下面新建一個waterfall.vue的組件;
  • 按照前面文章所說的頁面結(jié)構(gòu),編寫好預(yù)定的瀑布流案例頁面;
  • 在網(wǎng)上找?guī)讖埫赓M的圖片素材;

原理分析

主要是根據(jù)圖片的高度自動比較每列的總高度,根據(jù)uni.getImageInfo獲取到圖片高度,然后哪列低,就給哪列補充圖片,直至圖片列表循環(huán)完畢。

實戰(zhàn)演練

模板使用

下面就是循環(huán)列和圖片。

<view class="waterfall-page">
  <view
    class="waterfall-page-column"
    v-for="(item, index) in waterfall.columnList"
    :key="index"
    ref="column"
  >
    <view
      class="waterfall-page-item"
      v-for="(pItem, pIndex) in item"
      :key="pIndex"
    >
      <image class="waterfall-page-img" :src="pItem" mode="widthFix"></image>
    </view>
  </view>
</view>

樣式編寫

.waterfall-page {
  display: flex;
  align-items: flex-start;
  .waterfall-page-column {
    box-sizing: border-box;
    flex: 1;
    padding: 0 10rpx;
    width: 0;
    .waterfall-page-item {
      margin-bottom: 10rpx;
      .waterfall-page-img {
        display: inline-block;
        width: 100%;
      }
    }
  }
}

腳本使用

  • 定義數(shù)據(jù)
// 瀑布流信息
const waterfall = reactive({
  // 圖片列表
  imgList: [
    "/static/image/waterfall/pic-01.jpg",
    "/static/image/waterfall/pic-07.jpg",
    "/static/image/waterfall/pic-03.jpg",
    "/static/image/waterfall/pic-07.jpg",
    "/static/image/waterfall/pic-05.jpg",
    "/static/image/waterfall/pic-07.jpg",
    "/static/image/waterfall/pic-01.jpg",
    "/static/image/waterfall/pic-03.jpg",
    "/static/image/waterfall/pic-07.jpg",
  ],
  columnList: [], // 每列圖片
  columnHeight: [], // 每列圖片高度
  columnCount: 2, // 總列數(shù)
});
  • 初始化數(shù)據(jù)
// 初始化數(shù)據(jù)
function initData() {
  for (var i = 0; i < waterfall.columnCount; i++) {
    waterfall.columnList.push([]);
    waterfall.columnHeight.push(0);
  }
}
  • 計算方法
// 設(shè)置瀑布流布局
async function setWaterfallLayout() {
  for (var i = 0; i < waterfall.imgList.length; i++) {
    let item = waterfall.imgList[i];
    try {
      let imgInfo = await uni.getImageInfo({
          src: item,
        }),
        h = imgInfo.height;
      for (let j = 0; j < waterfall.columnCount - 1; j++) {
        let prevIndex = j,
          nextIndex = j + 1;
        if (
          waterfall.columnHeight[prevIndex] <= waterfall.columnHeight[nextIndex]
        ) {
          waterfall.columnList[prevIndex].push(item);
          waterfall.columnHeight[prevIndex] += h;
        } else {
          waterfall.columnList[nextIndex].push(item);
          waterfall.columnHeight[nextIndex] += h;
        }
      }
    } catch (error) {
      console.log(error);
    }
  }
}

案例展示

h5 端效果

小程序端效果

APP 端效果

以上就是uniapp自定義多列瀑布流組件實戰(zhàn)總結(jié)的詳細內(nèi)容,更多關(guān)于uniapp多列瀑布流組件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 微信小程序緩存過期時間的使用詳情

    微信小程序緩存過期時間的使用詳情

    這篇文章主要介紹了微信小程序緩存過期時間的使用詳情,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • JavaScript分步實現(xiàn)一個出生日期的正則表達式

    JavaScript分步實現(xiàn)一個出生日期的正則表達式

    本文把出生日期分割成幾個部分,分步地介紹了實現(xiàn)一個出生日期校驗的完整過程。對出生日期正則表達式感興趣的朋友參考下吧
    2018-03-03
  • 基于JavaScript制作霓虹燈文字 代碼 特效

    基于JavaScript制作霓虹燈文字 代碼 特效

    這里使用JS實現(xiàn)網(wǎng)頁上的霓虹燈文字特效代碼特效,運行效果看一下,你會看到文字的顏色像霓虹燈一樣,連續(xù)不停變化,五顏六色的,很炫的樣子,所以就叫做霓虹文字,也可以叫他文字變色效果,下面跟著小編一起學習JavaScript制作霓虹燈文字 代碼特效,需要的朋友一起學習吧
    2015-09-09
  • js常用節(jié)點操作實例總結(jié)

    js常用節(jié)點操作實例總結(jié)

    這篇文章主要介紹了js常用節(jié)點操作,結(jié)合實例形式總結(jié)分析了JavaScript針對dom節(jié)點的遍歷、查找、創(chuàng)建、刪除、克隆等相關(guān)實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2023-04-04
  • 根據(jù)分辨率不同,調(diào)用不同的css文件

    根據(jù)分辨率不同,調(diào)用不同的css文件

    根據(jù)分辨率不同,調(diào)用不同的css文件...
    2006-07-07
  • JS簡單動畫封裝淺析

    JS簡單動畫封裝淺析

    JS動畫,實質(zhì)是對DOM樣式的改變。只要把主流瀏覽器DOM元素的屬性方法搞清楚,做JS動畫并不算難
    2011-11-11
  • FF火狐下獲取一個元素同類型的相鄰元素實現(xiàn)代碼

    FF火狐下獲取一個元素同類型的相鄰元素實現(xiàn)代碼

    FF火狐下獲取一個元素同類型的相鄰元素實現(xiàn)代碼 ,需要的朋友可以了解下
    2012-12-12
  • 詳解JS HTML Web端使用MQTT通訊測試

    詳解JS HTML Web端使用MQTT通訊測試

    這篇文章主要介紹了JS HTML Web端使用MQTT通訊測試,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • JS實現(xiàn)的跨瀏覽器解析XML文件實例

    JS實現(xiàn)的跨瀏覽器解析XML文件實例

    這篇文章主要介紹了JS實現(xiàn)的跨瀏覽器解析XML文件的方法,結(jié)合實例形式分析了javascript基于ActiveXObject操作xml文件的加載與解析相關(guān)技巧,需要的朋友可以參考下
    2016-06-06
  • 詳解小程序如何避免多次點擊,重復觸發(fā)事件

    詳解小程序如何避免多次點擊,重復觸發(fā)事件

    這篇文章主要介紹了詳解小程序如何避免多次點擊,重復觸發(fā)事件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04

最新評論