vue中使用(瀑布流)vue-waterfall-easy插件

本文详细介绍了如何在Vue应用中使用vue-waterfall-easy插件实现瀑布流布局,包括安装步骤、组件引入和配置,以及如何处理数据和样式调整。特别关注了父元素高度设定和默认滚动条的消除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

📢参考文档

效果图如下:

在这里插入图片描述

✨1.安装

npm install vue-waterfall-easy --save-dev

✨2.引入
	import vueWaterfallEasy from 'vue-waterfall-easy'
	
	export default {
	  name: 'app',
	  components: {
	    vueWaterfallEasy
	  }
	}
✨3.使用
	<vue-waterfall-easy
	      :imgsArr="imgsArr"
	      srcKey="img"
	      @scrollReachBottom="getData"
	      @click="clickFn"
	      :maxCols="4"
	    >
      <div class="img-info" slot-scope="props">
        <p class="some-info">{{ props.value.num }}张图片</p>
        <p class="some-info">{{ props.value.title }}</p>
      </div>
    </vue-waterfall-easy>
✨具体代码如下:
<template>
  <div class="waterfall">
    <vue-waterfall-easy
      :imgsArr="imgsArr"
      srcKey="img"
      @scrollReachBottom="getData"
      @click="clickFn"
      :maxCols="4"
    >
      <div class="img-info" slot-scope="props">
        <p class="some-info">{{ props.value.num }}张图片</p>
        <p class="some-info">{{ props.value.title }}</p>
      </div>
    </vue-waterfall-easy>
  </div>
</template>

<script>
import Mock from "mockjs";
import vueWaterfallEasy from "vue-waterfall-easy";
export default {
  components: {
    vueWaterfallEasy,
  },
  data() {
    return {
      imgsArr: [],
    };
  },
  created() {
    this.getList();
  },
  methods: {
    clickFn(event, { index, value }) {
      // 阻止a标签跳转
      event.preventDefault();
      // 只有当点击到图片时才进行操作
      if (event.target.tagName.toLowerCase() == "img") {
        console.log("img clicked", index, value);
      }
    },
    getData() {
      //真实项目中根据真实的请求数据来进行追加(此处只是模拟)
      this.imgsArr.push(...this.imgsArr);
    },
    getList() {
      this.imgsArr = Mock.mock({
        "list|20": [
          {
            "id |+1": 1,
            img: "@image",
            "num|+1": 5,
            "title|": "@cname",
          },
        ],
      }).list;
      console.log(this.imgsArr);
    },
  },
};
</script>

<style lang="less">
* {
  margin: 0;
  padding: 0;
}
html,
body,
#app {
  height: 100%;
  width: 100%;
  .waterfall {
    height: 100%;
    width: 100%;
    position: absolute;
    overflow: hidden;
    .img-info {
      display: flex;
      justify-content: space-around;
      height: 45px;
      line-height: 45px;
    }
  }
}
</style>
✨总结如下:

踩坑1:(父元素必须设定宽高,其他更多配置参数参考文档,此处就不一一赘述)
在这里插入图片描述

在这里插入图片描述
踩坑2:引入插件之后,默认显示的两个滚动条,需给父元素进行定位,以及设置*{margin:0;padding:0},具体样式请参考以上代码。

👁‍🗨以上数据是通过mockjs来模拟的,通过npm install mockjs -D进行安装即可;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃葡萄不吐葡萄皮嘻嘻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值