日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

《Vue插件》瀑布流插件vue-masonry的使用与踩坑记录

發(fā)布時間:2023/12/18 vue 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Vue插件》瀑布流插件vue-masonry的使用与踩坑记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這是一個沒有套路的前端博主,熱衷各種前端向的騷操作,經(jīng)常想到哪就寫到哪,如果有感興趣的技術(shù)和前端效果可以留言~博主看到后會去代替大家踩坑的~
主頁: oliver尹的主頁
格言: 跌倒了爬起來就好~

《Vue插件》瀑布流插件vue-masonry的使用與踩坑記錄

  • 前言
  • 官網(wǎng)
  • 安裝與使用
  • 基本使用
    • 示例
  • 參數(shù)
    • item-selector
    • transition-duration
    • column-width
    • origin-left
    • origin-top
    • gutter
  • 小結(jié)

前言

之前其實有分享過一篇純CSS實現(xiàn)瀑布流的方法: https://oliver.blog.csdn.net/article/details/126450691,但純CSS實現(xiàn)的方案都不是比較好的方案,總歸有一些各式各樣的局限性,因此,有了本文,記錄分享一下vue中比較好用的一個瀑布流插件——vue-masonry,GitHub上將近600個star,個人推薦~
注意:以下vue-masonry相關(guān)分享與踩坑解決的問題版本為0.16.0

官網(wǎng)

官網(wǎng)地址:https://masonry.desandro.com/,但文本的主要的信息來源來自于GitHub的README,地址如下:https://github.com/shershen08/vue-masonry#readme
有興趣的小伙伴可以自行瀏覽~當(dāng)然插件本身可以適用于很多平臺,Vue僅僅是其中之一;

安裝與使用

由于是集成在Vue中的,絕大多數(shù)Vue都是基于Vue-Cli搭建的項目,script標(biāo)簽這種…應(yīng)該很少見吧,因此就不過多涉及了,以vue-cli為主,

// 安裝 npm install vue-masonry -S

注意的是,vue-masonry沒有對應(yīng)的@types/vue-masonry

這也就代表vue-masonry 沒有對應(yīng)的類型描述,當(dāng)然,也不需要,即使你的項目是Vue3+TypeScript也不需要安裝類型描述文件,以Vue3+Ts的項目為例,當(dāng)安裝完成后,直接在main.ts文件中引入即可,引入代碼如下:

import { VueMasonryPlugin } from 'vue-masonry';app.use(VueMasonryPlugin);

常規(guī),簡單的引入,即可正常使用;

基本使用

vue-masonry的使用核心在于自定義指令:v-masonryv-masonry-tile這個是整個瀑布流插件的使用核心

<div v-masonry><div v-masonry-tile v-for="(item, index) in blocks"><!-- block item markup --></div> </div>
  • v-masonry: 綁定在父級容器上;
  • v-masonry-tile: 綁定在子級容器上;

示例

直接看個例子吧

<div v-masonry class="container"><divv-masonry-tilev-for="(item, index) in demoList":class="`demo-${item}`":key="index"><div></div></div> </div>

效果圖如下:

參數(shù)

item-selector

接收一個字符串作為參數(shù),官方原文解釋:list element DOM item selector,作用是選擇哪些列作為瀑布流的列,比如:

<div v-masonry item-selector=".demo-2" class="container"><divv-masonry-tilev-for="(item, index) in demoList":class="`demo-${item}`":key="index"><div></div></div> </div><script lang="ts" setup> import { Ref, ref } from "vue";const demoList: Ref<number[]> = ref([1, 2, 1, 3, 4]); </script>

示例中item-selector的值是".demo-2",代表只有類名中包含.demo2的DOM,都會被拉入瀑布流的布局,如果不包含,那么依舊會按原來的規(guī)則進行布局;

transition-duration

接收一個字符串作為參數(shù),官方原文解釋:duration of transitions,作用是設(shè)定動畫改變的持續(xù)時間,比如:

<div v-masonry transition-duration="0.2s" class="container"><divv-masonry-tilev-for="(item, index) in demoList":class="`demo-${item}`":key="index"><div></div></div> </div>

這個屬性是動畫持續(xù)時間,比如,當(dāng)父級容器的寬度尺寸發(fā)生變化了,理所當(dāng)然的里面的瀑布流布局也會隨之發(fā)生變化,所有基于瀑布流的DOM將要重新排布,這個排布的過程是動畫化的,這個動畫持續(xù)時間即這里設(shè)定的時間~

column-width

接收一個字符串作為參數(shù),官方原文解釋:element selector for column width. Can be a selector string or a number,簡單的說就是設(shè)定一個基準(zhǔn)列寬,大致用法如下:

<div v-masonry column-width=".demo-1" class="container"><divv-masonry-tilev-for="(item, index) in demoList":class="`demo-${item}`":key="index"><div></div></div> </div>

默認(rèn)情況下vue-masonry會以第一個元素的寬度作為默認(rèn)排序,也就是說如果第一個元素的非最小單位的基準(zhǔn)元素,那么整個瀑布流的布局都會亂,因此需要通過column-width修改;
舉個例子吧,看一段代碼

<div v-masonry class="container"><div v-masonry-tile class="demo-2"></div><div v-masonry-tile class="demo-1"></div><div v-masonry-tile class="demo-1"></div> </div>

整個瀑布流布局的列寬會以demo-2的列寬為標(biāo)準(zhǔn),因此,即使demo-1的寬度比demo-2的小

因此,這種情況下,我們就需要使用column-width指定基準(zhǔn)列寬,將column-width的值設(shè)定為demo-1

<div v-masonry column-width=".demo-1" class="container"><div v-masonry-tile class="demo-2"></div><div v-masonry-tile class="demo-1"></div><div v-masonry-tile class="demo-1"></div> </div>

結(jié)果如下:

origin-left

官方原文解釋:set to group elements to the right instead of left by default,設(shè)置X軸的排序方式,默認(rèn)從左往右排序,設(shè)定后可從右向左排序

<template><div v-masonry origin-left="false" class="container"><divv-masonry-tilev-for="(item, index) in demoList":class="`demo-${item}`":key="index"><div></div></div></div> </template>

效果圖如下:

origin-top

官方原文解釋:set to group elements to the bottom instead of top by default,設(shè)置Y軸的排序方式,默認(rèn)從上往下排序,設(shè)定后可從下向上排序

<template><div v-masonry origin-top="false" class="container"><divv-masonry-tilev-for="(item, index) in demoList":class="`demo-${item}`":key="index"><div></div></div></div> </template>

效果圖如下:

gutter

官方原文解釋:specifies [horizontal space between item elements]. Can be a selector string or a number. (https://masonry.desandro.com/options.html#gutter). Set gutter to an Element or Selector String to use the outer width of the element,簡單的說,就是用來設(shè)置列寬,

具體效果可以看原文中的這個鏈接,說明的已經(jīng)非常詳細(xì)了:https://masonry.desandro.com/options.html#gutter,當(dāng)然由于這是在Vue中使用,因此還是要通過屬性的方式注入,比如

<template><div v-masonry gutter="10" class="container"><divv-masonry-tilev-for="(item, index) in demoList":class="`demo-${item}`":key="index"><div></div></div></div> </template>

小結(jié)

還有一些屬性,感覺不是太重要,因此有興趣的小伙伴可以自行嘗試,問題不大,接著,對比下來不難發(fā)現(xiàn),純CSS用法還是非常撿漏的,如果真的是實用與項目中,除非是極其簡單的應(yīng)用,可以考慮用純CSS實現(xiàn),否則還是建議使用一些功能已經(jīng)相對完善的第三方插件來幫助我們實現(xiàn)功能~

總結(jié)

以上是生活随笔為你收集整理的《Vue插件》瀑布流插件vue-masonry的使用与踩坑记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 污污视频网站在线免费观看 | 黄色三级视屏 | 亚洲精品免费在线观看视频 | 尤物自拍 | 日韩一级片在线播放 | 99久久久无码国产精品免费 | 五月天啪啪 | 成人免费视频网站在线看 | 日本黄色片一级 | 国产黄色一区二区三区 | 免费成人在线网站 | 午夜视频在线观看视频 | 国产成人精品一区二区三区免费 | 国产欧美一区二区在线观看 | 91成人免费在线观看 | 一区二区三区不卡在线观看 | 爱福利视频一区 | 白丝美女被草 | 国产女人被狂躁到高潮小说 | 欧美日韩免费观看视频 | 日韩性网 | 成人激情开心网 | 一区二区三区在线观看视频 | 亚洲激情五月 | 91久久精品一区二区三区 | 欧美色图视频在线 | 两口子交换真实刺激高潮 | jav中文字幕 | 成人在线观看免费视频 | 狠狠五月| 亚洲国产私拍精品国模在线观看 | 毛片啪啪啪| 四虎影院一区 | 日日夜夜干 | 好吊日在线 | 奇米777视频 | 91视频免费观看网站 | 黄色网址哪里有 | 色哟哟视频在线 | 一区二区三区中文字幕在线观看 | 国产无遮挡又黄又爽又色视频 | 99xav| 欧美激情国产精品免费 | 精品亚洲一区二区 | 另类国产| 欧美三级免费看 | 亚洲精品久久久久久久久久吃药 | 国产精品jizz在线观看美国 | 国产精品99一区二区三区 | 欧美一级欧美三级在线观看 | 日日操日日碰 | 人妻少妇偷人精品久久性色 | 亚洲无码高清精品 | 国产一区在线观看免费 | 日本一区二区三区四区五区 | 天天久久久| 99精品免费视频 | 91快色| 老司机精品视频在线播放 | 影音先锋男人的天堂 | 日本不卡一 | 亚洲在线视频网站 | 久久久线视频 10 | 久久亚洲精品无码va白人极品 | 免费成人福利视频 | 国产特级视频 | av鲁丝一区鲁丝二区鲁丝 | 久久精品女人毛片国产 | 草草影院在线免费观看 | 国产精品久久久久高潮 | 欧美丰满老妇性猛交 | 久久精品国产亚洲AV成人婷婷 | 9.1成人看片| 电影一区二区三区 | 亚洲国产成人一区二区 | 中字幕一区二区三区乱码 | 奇米影视第四色777 波多野结衣一区二区三区免费视频 | 极品毛片| 久久人妻精品白浆国产 | 国产亚洲一区二区三区不卡 | 我爱avav色aⅴ爱avav | 亚瑟av在线 | 国产精品不卡av | 中国黄色一级片 | 男女猛烈无遮挡免费视频 | 超碰爱爱 | 四级毛片| 免费看成人aa片无码视频羞羞网 | 69av导航 | 成人久久精品 | 日本精品一区二区视频 | wwwww在线观看 | 久久久一二三四 | 乱人伦中文字幕 | 强行挺进白丝老师里呻吟 | 午夜影剧院| 在线观看黄色大片 | 4438全国最大成人网 | 中国精品一区二区 |