当前位置: 首页 > news >正文

vue3.0 + vue-waterfall2:瀑布流布局

1、地址

https://www.npmjs.com/package/vue-waterfall2

2、下载

npm install vue-waterfall2@2.x --save
这样可以下载 2.0以上版本
这里需要注意 Vue2 用1.0的版本,Vue3用2.0的版本

在这里插入图片描述

3、vue3.0项目中应用

3.1 mian.js

import waterfall from 'vue-waterfall2';
app.use(waterfall);

3.2 组件

<template>
	<waterfall :col="col" :data="waterFall" @loadmore="loadMore" :gutterWidth="10">
	  <div
	    class="cell-item"
	    v-for="(item, index) in waterFall"
	    :key="index"
	    @click="() => handleClick(index)"
	  >
	    <img v-if="item.img" :src="item.img" alt="加载错误" />
	       <div class="item-body">
				这里可以加一些图片描述
	       </div>
	  </div>
	</waterfall>
</template>
<style lang="scss">
.cell-item {
  width: 100%;
  // margin-bottom: 18px;
  background: #ffffff;
  border: 2px solid #f0f0f0;
  border-radius: 12px;
  overflow: hidden;
  box-sizing: border-box;
  margin-bottom: 10px;
  img {
    // border-radius: 12px 12px 0 0;
    width: 100%;
    height: auto;
    display: block;
  }
}
</style>
<script>
const waterFall = ref([]);
const waterFallList = ref([
  {
    img: "https://image.watsons.com.cn//upload/8a316140.png?w=377&h=451&x-oss-process=image/resize,w_1080",
  },
  {
    img: "https://image.watsons.com.cn//upload/083767f0.JPG?w=828&h=620&x-oss-process=image/resize,w_1080",
  },
  {
    img: "https://image.watsons.com.cn//upload/083767f0.JPG?w=828&h=620&x-oss-process=image/resize,w_1080",
  },
  {
    img: "https://image.watsons.com.cn//upload/02a4f38d.jpg?w=1067&h=1067&x-oss-process=image/resize,w_1080",
  },
  {
    img: "https://image.watsons.com.cn//upload/589585c1.jpeg?x-oss-process=image/resize,w_1080",
  },
  {
    img: "https://image.watsons.com.cn//upload/d862d932.jpg?w=1080&h=1440&x-oss-process=image/resize,w_1080"
  },
  {
    img: "https://image.watsons.com.cn//upload/eb4fb58f.jpg?w=1080&h=1080&x-oss-process=image/resize,w_1080"
  },
  {
    img: "https://image.watsons.com.cn//upload/71d19462.jpg?x-oss-process=image/resize,w_1080"
  },
  {
    img: "https://image.watsons.com.cn//upload/8a316140.png?w=377&h=451&x-oss-process=image/resize,w_1080"
  },
  {
    img: "https://image.watsons.com.cn//upload/083767f0.JPG?w=828&h=620&x-oss-process=image/resize,w_1080"
  },
  {
    img: "https://image.watsons.com.cn//upload/02a4f38d.jpg?w=1067&h=1067&x-oss-process=image/resize,w_1080"
  },
  {
    img: "https://image.watsons.com.cn//upload/589585c1.jpeg?x-oss-process=image/resize,w_1080"
  }
]);
const loadMore = () => {
  loadTip.value = '加载中……';
  setTimeout(() => {
    waterFall.value = Array.from(waterFall.value.concat(waterFallList.value));
    loadTip.value = '加载更多';
  }, 1000);
};
loadMore();

// --------------滚动监听-----------------------
const scrollFun = () => {
  const SELECTWRAP: any = document.querySelector('.o-scroller-container')
  if (SELECTWRAP) {
    const handleScroll = function () {
      if (loadTip.value === '到底了……') {
        return;
      }
      const CONDITION = SELECTWRAP.scrollHeight - Math.ceil(SELECTWRAP.scrollTop) <= SELECTWRAP.clientHeight
      if (CONDITION && SELECTWRAP.scrollTop !== 0) {
        loadMore();
      }
    }
    SELECTWRAP.addEventListener('scroll', handleScroll);
  }
}

onMounted(() => {
  scrollFun();
})
</script>

这里两点需要注意:
1、样式不能加 scoped
2、滚动事件需要自己加,我这个写法基本够用,加到能滚动的盒子上就行

相关文章:

  • CMU15445(2024 fall) Project #0 - C++ Primer
  • 用大白话解释缓存Redis +MongoDB是什么有什么用怎么用
  • 基于深度学习+NLP豆瓣电影数据爬虫可视化推荐系统
  • Python标准库【os.path】操作路径
  • vue el-table-column 单元表格的 省略号 实现
  • 人工智能之数学基础:线性代数中矩阵的初印象
  • .sql文件怎么打开
  • vLLM服务设置开机自启动(Linux)
  • 解决 Tkinter 在 Linux 上 Combobox 组件导致焦点丢失问题
  • react工程化开发
  • BIO、NIO、AIO、Netty从简单理解到使用
  • C# Lambda表达式
  • CMU15445(2023fall) Project #3 - Query Execution(上)详细分析
  • cuda-12.4.0 devel docker 中源码安装 OpenAI triton
  • 秋招:现状与应对措施,如何做好秋招与暑期实习的衔接?
  • 操作系统知识点12
  • 详解 HashMap扩容机制,HashMap的底层原理以及HashSet在底层原理
  • Java Web应用中获取客户端的真实IP地址
  • 【AI论文】时间有其定位吗?时间信息头:语言模型在何处回忆时间特定信息
  • Stable Diffusion(SD)系列模型及关联算法深度解析
  • 北京品牌网站建设公司/培训心得体会
  • 什么是网络营销设计/淘宝关键词优化技巧教程
  • 河北建筑工程网/上海最大的seo公司
  • 宁波做网站建设推广/最快的新闻发布平台
  • 做短租类型的网站/百度一下百度主页官网
  • 曹县做网站建设/描述建设一个网站的具体步骤