最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

導(dǎo)語(yǔ)

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

準(zhǔn)備工作

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

原理分析

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

實(shí)戰(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);
  }
}
  • 計(jì)算方法
// 設(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自定義多列瀑布流組件實(shí)戰(zhàn)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于uniapp多列瀑布流組件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • js出生日期 年月日級(jí)聯(lián)菜單示例代碼

    js出生日期 年月日級(jí)聯(lián)菜單示例代碼

    本篇文章主要介紹了js出生日期 年月日級(jí)聯(lián)菜單的示例代碼。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • JS對(duì)象轉(zhuǎn)換為Jquery對(duì)象示例

    JS對(duì)象轉(zhuǎn)換為Jquery對(duì)象示例

    JS對(duì)象轉(zhuǎn)換為Jquery對(duì)象的方便在于可以使用jquery的一些方法,下面有個(gè)示例,大家可以參考下
    2014-01-01
  • js實(shí)現(xiàn)五星評(píng)價(jià)功能

    js實(shí)現(xiàn)五星評(píng)價(jià)功能

    本文主要介紹了js實(shí)現(xiàn)五星評(píng)價(jià)功能和印象評(píng)價(jià)功能的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • javascript 獲取函數(shù)形參個(gè)數(shù)

    javascript 獲取函數(shù)形參個(gè)數(shù)

    本節(jié)主要介紹了javascript獲取函數(shù)形參個(gè)數(shù)的具體實(shí)現(xiàn),需要的朋友可以參考下
    2014-07-07
  • 手把手教你用Javascript實(shí)現(xiàn)觀察者模式

    手把手教你用Javascript實(shí)現(xiàn)觀察者模式

    這篇文章主要為大家介紹了Javascript觀察者模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • JavaScript實(shí)現(xiàn)枚舉的幾種方法總結(jié)

    JavaScript實(shí)現(xiàn)枚舉的幾種方法總結(jié)

    在前端開(kāi)發(fā)中,我們可能經(jīng)常需要用到枚舉,使用枚舉的好處是為了讓代碼的可讀性更強(qiáng),避免直接使用數(shù)字或未知的字符串,但是在JavaScript中,要自己實(shí)現(xiàn)一個(gè)枚舉功能,那么大家能想到多少種實(shí)現(xiàn)枚舉的方法呢,我將介紹幾種實(shí)現(xiàn)枚舉的好方法
    2023-08-08
  • js操作CheckBoxList實(shí)現(xiàn)全選/反選(在客服端完成)

    js操作CheckBoxList實(shí)現(xiàn)全選/反選(在客服端完成)

    對(duì)于CheckBoxList控件來(lái)說(shuō),一方面要實(shí)現(xiàn)大量數(shù)據(jù)在服務(wù)器端的綁定工作,另一方面往往要求實(shí)現(xiàn)全選、反選等功能,接下來(lái)將介紹js操作CheckBoxList實(shí)現(xiàn)全選/反選,感興趣的朋友可以了解下,或許對(duì)你有所幫助
    2013-02-02
  • Bootstrap每天必學(xué)之導(dǎo)航

    Bootstrap每天必學(xué)之導(dǎo)航

    Bootstrap每天必學(xué)之導(dǎo)航,本文講解的就是大家在做項(xiàng)目時(shí)一定會(huì)接觸到的導(dǎo)航,感興趣的小伙伴們可以參考一下
    2015-11-11
  • JavaScript中常用的3種彈窗(警告框、確認(rèn)框、提示框)

    JavaScript中常用的3種彈窗(警告框、確認(rèn)框、提示框)

    JavaScript提供了幾種常用的彈窗方法,用于與用戶進(jìn)行交互或顯示提示消息,這篇文章主要給大家介紹了關(guān)于JavaScript中常用的3種彈窗的相關(guān)資料,分別包括警告框、確認(rèn)框、提示框,需要的朋友可以參考下
    2023-09-09
  • Next.js15圖片查看網(wǎng)站之圖片右鍵菜單的兼容優(yōu)化與坑

    Next.js15圖片查看網(wǎng)站之圖片右鍵菜單的兼容優(yōu)化與坑

    Next.js 提供了內(nèi)置的圖片和字體優(yōu)化功能,旨在提升應(yīng)用性能和用戶體驗(yàn),下面這篇文章主要介紹了Next.js15圖片查看網(wǎng)站之圖片右鍵菜單的兼容優(yōu)化與坑的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2026-03-03

最新評(píng)論

科技| 伊金霍洛旗| 日照市| 博野县| 金昌市| 昌邑市| 湘阴县| 乌鲁木齐市| 祁门县| 中山市| 托克托县| 定州市| 固始县| 泸定县| 平果县| 榆林市| 赤壁市| 乐山市| 清流县| 乌兰县| 基隆市| 都安| 多伦县| 德昌县| 宣汉县| 东莞市| 巴塘县| 涞水县| 武威市| 凭祥市| 大化| 简阳市| 客服| 鄯善县| 吴川市| 高唐县| 邯郸市| 泰顺县| 博湖县| 鹤庆县| 永嘉县|