【前端】【Vue】Vue3自适应瀑布流解决方案
Vue3自适应瀑布流解决方案

效果如上图所示。
说明:Vue3、[vue-masonry插件](vue-masonry - npm (npmjs.com))
建议查看官方文档vue-masonry (https://www.npmjs.com/package/vue-masonry)
安装
npm install vue-masonry --save
main.js
import {VueMasonryPlugin} from 'vue-masonry';
app.use(VueMasonryPlugin)
HTML骨架
<div v-masonry fit-width="true" transition-duration="0.3s" item-selector=".card" origin-left="false" class="pets">
<div v-masonry-tile v-for="pet in pets" :key="pet['code']" class="card">
</div>
</div>
需要提醒的是:fit-width="true" 自动调整宽度,以避免出现左边或者右边出现多余空白
本页完整代码
<template>
<div style="width:100%;margin:auto;">
<div v-masonry fit-width="true" transition-duration="0.3s" item-selector=".card" origin-left="false" class="pets">
<div v-masonry-tile v-for="pet in pets" :key="pet['code']" class="card">
<n-card>
<p>
<n-tag style="margin:2px;" type="info">{{ pet["type"] }}</n-tag>
<n-tag style="margin:2px;" type="info">{{ pet["kind"] }}</n-tag>
<n-tag> {{ pet['name'] }} </n-tag>
</p>
<template #cover>
<img :src="pet['pic']">
</template>
<p>
{{ pet['name'] }},出生于{{ pet['birth'] }},
{{
pet['gender'] === 0 ? "雌" : pet['gender'] === 1 ? "雄" : pet['gender'] === 2 ? "雌雄共体" : "未知"
}},性格{{ pet['disposition'] }},目前健康状态为{{ pet['health'] }}。
目前 <n-tag type="success">{{
pet['state'] === 0 ? "未被领养" : "已被领养"
}}</n-tag>
</p>
<p style="text-align:right;">
<n-button type="primary" v-if="pet['state'] === 0 ? true : false">
我要领养
</n-button>
</p>
</n-card>
</div>
</div>
</div>
</template>
<script>
import { defineComponent } from 'vue'
import { NCard, NTag, NButton } from 'naive-ui'
import axios from 'axios'
export default defineComponent({
components: {
NCard, NTag, NButton,
},
data() {
return {
pets: [],
}
},
mounted() {
this.search("")
},
methods: {
search(keyword) {
axios({
method: 'post',
url: '/pet/search',
params: {
keyword: keyword,
},
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
}).then((response) => {
this.pets = response.data["data"]
})
}
}
})
</script>
<style>
.pets {
width:80%;
margin: 0 auto;
border: 1px solid red;
}
.card {
width: 100%;
max-width: 250px;
margin:0.25em;
border-radius: 5px;
box-shadow: 0px 2px 10px 1px rgba(0, 0, 0, 0.1);
}
.card img {
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
</style>
【前端】【Vue】Vue3自适应瀑布流解决方案的更多相关文章
- 从零开始学习前端JAVASCRIPT — 11、JavaScript运动模型及轮播图效果、放大镜效果、自适应瀑布流
未完待续...... 一.运动原理 通过连续不断的改变物体的位置,而发生移动变化. 使用setInterval实现. 匀速运动:速度值一直保持不变. 多物体同时运动:将定时器绑设置为对象的一个属性. ...
- vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多
一.思路分析和效果图 用vue来实现一个瀑布流效果,加载网络图片,同时有下拉刷新和上拉加载更多功能效果.然后针对这几个效果的实现,捋下思路: 根据加载数据的顺序,依次追加标签展示效果: 选择哪种方式实 ...
- vue.js实现瀑布流之vue-waterfall-easy
想必大家应该很多都已经习惯了jquery的DOM操作,jquery的瀑布流实现起来也很容易. 但是,随着时代的发展,随着时代的进步..... 算了算了,扯远了,既然能找到这儿来,肯定是在vue.js上 ...
- vue 写一个瀑布流插件
效果如图所示: 采用了预先加载图片,再计算高度的办法..网络差的情况下,可能有点卡 新建 vue-water-easy.vue 组件文件 <template> <div class ...
- 堆糖瀑布流完整解决方案(jQuery)
2010年堆糖创办以来,网站界面经历过3-5次重大改版,logo也曾更换过两次,早期蓝红相间三个圈的logo恐怕很少有人记得了.与此同时,前端 js 框架也在默默的更新换代.最早堆糖上线时,js 采用 ...
- js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符
js中对arry数组的各种操作小结 最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...
- 前端vue下载文件时blob返回流中怎么获取文件名
我很久之前写了一篇前端vue利用blob对象下载文件,有些人私信我,如果后端返回流失败,给出的json对象该怎么获得?前端获取的流怎么能获取原文件名?其实在那篇文章之后,我就已经针对这两个问题进行了优 ...
- 使用vue做移动端瀑布流分页
讲到瀑布流分页有一个方法一定是要用到的 pullToRefresh() 这个也没什么好解释的,想了解的可以去百度一下 下面上代码 <div id="main" class=& ...
- 自己实现vue瀑布流组件,含详细注释
我知道vue有瀑布流插件vue-waterfall-easy,但是使用的时候与我的预期有部分别,所以就自己动手写了这个组件 人和动物的根本区别是是否会使用工具,我们不仅要会使用,还要会创造工具,别人提 ...
- 用vue.js写的一个瀑布流的组件
用vue.js写的一个瀑布流的组件:https://segmentfault.com/a/1190000010741319 https://www.jianshu.com/p/db3cadc03402
随机推荐
- 腾讯自研Git客户端,助力每个人都可以轻松使用Git
工具介绍 UGit是一款腾讯自研的Git客户端,为了让每个人都可以轻松使用Git,从而提高开发效率和团队协作的流畅性.支持工蜂MR/CR,工蜂议题管理,另外对于Git的原生特性有着深度支持. 支持的系 ...
- 填坑 CentOS7 使用 Python3 安装 Cython 编写扩展
前文参见 <CentOS 7 下通过 Cython 编写 python 扩展>, 用的是 Python2.7,本文用的是 Python3.6 yum install python3 pyt ...
- 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年3月刊
本文为大家整理了墨天轮数据社区2023年3月发布的优质技术文章,主题涵盖Oracle.MySQL.PostgreSQL等数据库的基础安装配置操作.故障处理.性能优化等日常实践操作,以及概念梳理.常用脚 ...
- 2021年6月国产数据库排行榜:OceanBase、PolarDB会师TiDB、openGauss,入局开源阵营,逐鹿生态建设
"首夏犹清和,芳草亦未歇",时至六月,百花齐放.百家争鸣的国产数据库市场依旧延续着如骄阳般火热的态势.不过从最新一期的 国产数据库流行度排行榜 Top 10 中不难发现,一个词足以 ...
- 2021年11月数据库排行解读:openGauss跃居第三,人大金仓晋身前十
2021年11月墨天轮国产数据库流行度排行榜出炉,本月前三的数据库产品分别是:TiDB.达梦.openGauss,openGauss 数据库是首次跻身前三强. TiDB 自2020年以来,持续稳居榜首 ...
- 关于 vue3 中的 fragment 组件
vue3 中的模板中只能返回一个元素 ,否则报错,使用 fragment 组件可以返回多个元素标签
- CSharp的lambda表达式的使用
using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using Syst ...
- NebulaGraph 的云产品交付实践
作者:乔雷,Vesoft.Inc 云原生技术专家 NebulaGraph 介绍 NebulaGraph 是由杭州悦数科技有限公司自主研发的一款开源分布式图数据库产品,擅长处理千亿节点万亿条边的超大数据 ...
- 详解 JuiceFS 在多云架构下的数据同步与一致性
随着大模型流行,GPU 算力资源正变得日益稀缺,传统的"算力跟着存储跑"的策略需要转变为"存储跟着算力跑".为了确保数据一致性和管理的便捷性,企业通常在特定地区 ...
- 带你玩转nginx负载均衡
nginx跨多个应用程序实例的负载平衡是一种用于优化资源利用率,最大化吞吐量,减少延迟和确保容错配置的常用技术. 环境介绍 配置nginx负载均衡器因会用到多台服务器来进行,所以下面我会用到docke ...