vue3 双容器自动扩展布局 根据 内容的多少 动态定义宽度

 需求:

左右两个列表 挨着排列,当左边内容超出滚动条时,换列显示,右边的列表随之移动

效果图:

1.左边数据:10,右边数据:5

2.左边数据:30,右边数据:5  此时:左边数据分两列显示,右边跟着移动

 

 完整代码:


<template><div class="layout-padding"><div class="layout-padding-auto layout-padding-view" style="overflow: auto"><div class="container1"><div class="left" ref="leftRef"><div v-for="n in leftItems" :key="n" class="item">Left {{ n }}</div><button @click="clickBtn('left')">+</button></div><div class="right" ref="rightRef"><div v-for="n in rightItems" :key="n" class="item">Right {{ n }}</div><button @click="clickBtn('right')">+</button></div></div></div></div>
</template><script setup>
import {ref, onMounted, onUnmounted} from 'vue'const leftItems = ref(180)
const rightItems = ref(50)
const leftRef = ref()
const rightRef = ref()const clickBtn = (type) => {if (type == 'left') {leftItems.value++getData(leftRef.value)} else if (type == 'right') {rightItems.value++getData(rightRef.value)}
}
const getData = (ref) => {if (!ref) returnconst items = ref.querySelectorAll('.item')if (!items.length) returnconst itemHeight = items[0].offsetHeight + 10const containerHeight = ref.offsetHeightconst columns = Math.ceil((items.length + 1) * itemHeight / containerHeight)ref.style.width = `${columns * 200}px`ref.style['min-width'] = `${columns * 200}px`
}
onMounted(async () => {getData(leftRef.value)getData(rightRef.value)
});const updateSize = () => {getData(leftRef.value)getData(rightRef.value)
}onMounted(() => {window.addEventListener('resize', updateSize)
})onUnmounted(() => {window.removeEventListener('resize', updateSize)
})
</script><style scoped>
.container1 {display: flex;height: 100%;overflow: auto;
}.left, .right {display: flex;flex-direction: column;flex-wrap: wrap;align-content: flex-start;gap: 10px;padding: 10px;
}.item {padding: 10px;background: #eee;width: 180px;min-width: 180px;
}button {margin-top: 10px;width: 180px;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/86943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux-java部署

version: 3 services:nacos_host:image: nacos/nacos-server:v2.2.0restart: alwayscontainer_name: nacos_hostenvironment:- MODEstandalone- PREFER_HOST_MODEhostnamevolumes:- ./sores/nacos/log:/home/nacos/logsports:- 8848:8848- 9848:9848 #2.0新增了两个端口&#x…

010502管道符_防火墙出入站_不回显带外-渗透命令-基础入门-网络安全

文章目录 1 管道符2 防火墙出入站3 不回显外带典型场景常见OOB通道实现示例&#xff08;以DNS为例&#xff09;1. 利用DNS外带数据2. 使用工具监听 防御建议扩展&#xff1a;无回显OOB自动化工具注意事项演示结语 1 管道符 | &#xff08;管道符号&#xff09; ||&#xff08;…

智慧养老与数字健康:科技赋能老年生活,构建全方位养老体系

在全球人口老龄化进程不断加速的当下&#xff0c;我国的老龄化程度也日益加深。 截至 2023 年末&#xff0c;我国 60 岁及以上人口达 2.97 亿人&#xff0c;占总人口的 21.1%&#xff0c;其中 65 岁及以上人口为 2.17 亿人&#xff0c;占总人口的 15.4%。 养老问题已成为全社…

在 cuda 基础环境中安装完整的cupy

nvidia/cuda:12.6.3-cudnn-devel-ubuntu22.04 1. 创建 cuda 基础容器 export NUM2 && \ sudo docker run --gpus all -it \ --name cupy_LHL_${NUM} \ -v /home/jimmy/ex_cupy/tmp${NUM}:/root/tmp${NUM} \ -v /home/jimmy/.ssh:/root/.ssh \ nvidia/cuda:12.6.3-dev…

OB Cloud × 海牙湾:打造高效灵活的金融科技 AI 数字化解决方案

在金融行业国产升级的战略背景下&#xff0c;上海海牙湾信息科技有限公司凭借其服务银行客户的深厚积累&#xff0c;近日完成重大技术升级 —— 将金融行业积分生态的SaaS平台、数字化营销中台及企业供应链管理系统全部迁移至完全自主研发的 OB Cloud 一体化云数据库。依托OB C…

LarkXR 赋能AI x XR数字供应链:引领智能设计、数字孪生与零售新未来

全球零售业数字化转型 在数字化浪潮的推动下&#xff0c;零售业正经历一场从设计到生产再到终端消费的全链路变革。消费者对个性化、沉浸式体验的需求日益增长&#xff0c;而企业也亟需通过数字化手段提升效率、降低成本并增强竞争力。Paraverse平行云的LarkXR实时云渲染技术&…

go语言快速入门

代码仓库 gitee 如何运行 以打印hello world为例 // main.go package main // package为main的文件可以直接运行import "fmt"func main() {fmt.Println("Hello, World!") }# 直接运行 go run main.go # 或者编译后运行 go build main.go ./main.exe变量…

使用麒麟V10操作系统的KVM服务,但麒麟V10存在高危漏洞无法修复?

麒麟V10操作系统之KVM部署虚拟机_麒麟v10安装kvm-CSDN博客文章浏览阅读3.7k次&#xff0c;点赞30次&#xff0c;收藏25次。本文介绍了在麒麟V10操作系统上部署KVM虚拟机的详细步骤&#xff0c;包括检查虚拟化支持、安装KVM组件、创建虚拟机、配置网络桥接&#xff0c;以及解决可…

PG、SprinBoot项目报错,表不存在

1、用户名密码错误 2、数据库IP和数据库名称错误 3、类似于如下的表结构 PG 默认扫描PUBLIC下面的表&#xff0c;需要手动指定schema&#xff0c;currentSchemaswdn_new url: jdbc:postgresql://${PGSQL_HOST:127.0.0.1}:${PGSQL_PORT:5432}/swdn_new?currentSchemaswdn_ne…

python类成员概要

python类成员概要 python类成员分类如图&#xff1a; 简要说明&#xff1a; 1.实例变量&#xff08;Instance Variables&#xff09; 定义&#xff1a;在方法中通过 self.变量名 声明&#xff0c;属于单个实例 特点&#xff1a;每个实例拥有独立副本&#xff0c;在实例间不共…

Java性能问题排查

1. Java 性能排查 使用JPS查看当前Java进程 jps #查询需要排查的Java进程ID查看Java进程内最耗费CPU的线程资源使用情况 top -H -p <Java进程pid>ps -Lfp <Java进程pid>ps -mp <Java进程pid> -o THREAD, tid, time根据第1步查询出的PID&#xff0c;通过jstac…

基于OpenCV和深度学习实现图像风格迁移

文章目录 引言一、准备工作二、代码实现解析1. 读取和显示原始图像2. 图像预处理3. 加载和运行风格迁移模型4. 处理输出结果 三、效果展示四、扩展应用五、总结 引言 图像风格迁移是计算机视觉中一个非常有趣的应用&#xff0c;它可以将一幅图像的内容与另一幅图像的艺术风格相…

SwiftUI隐藏返回按钮保留右滑手势方案

SwiftUI 隐藏返回按钮但保留右滑返回手势的方案 在 SwiftUI 中&#xff0c;如果你使用&#xff1a; .navigationBarBackButtonHidden(true)可以隐藏系统返回按钮&#xff0c;但会发现 右滑返回手势&#xff08;边缘返回&#xff09;失效了。 这是因为 SwiftUI 底层使用了 UI…

练习小项目11:鼠标跟随小圆点

&#x1f3af; 项目目标&#xff1a; 当鼠标在页面移动时&#xff0c;小圆点会跟随鼠标移动的位置&#xff0c;带有平滑动画。 &#x1f9e0; 实现思路&#xff1a; HTML&#xff1a; 页面内放一个 div 作为圆点。 CSS&#xff1a; 圆点使用绝对定位&#xff0c;初始在屏幕…

华为:eSight网管平台使用snmp纳管交换机

一、SNMP简介 SNMP&#xff08;Simple Network Management Protocol&#xff0c;简单网络管理协议&#xff09;是一种用于管理和监控网络设备的标准协议&#xff0c;广泛应用于路由器、交换机、服务器、打印机等网络设备的管理场景。以下是对它的简单介绍&#xff1a; 1、SNM…

【单片机期末】接口及应用

一、C51语言基础 【考点】存储类型 data是低128字节 code是ROM idata是高128字节 pdata是外部RAM可以用R0 R1寻址的&#xff0c;也叫页 xdata是外部RAM&#xff0c;可以用DPTR寻址或总线扩展 其中data、code、idata、pdata、xdata均为字节类型的&#xff0c;bdata是对位寻址的 …

C#迭代器

文档 C# Iterators 关键内容 普通接口 public interface IEnumerable {IEnumerator GetEnumerator(); }public interface IEnumerator {object Current { get; }bool MoveNext();void Reset(); }泛型接口 public interface IEnumerable<out T> : IEnumerable {IEnum…

Java多线程:为什么wait()必须用循环而非if?

在Java多线程编程中&#xff0c;调用wait()方法时应使用**循环结构&#xff08;while循环&#xff09;**而非if块&#xff0c;这是由线程同步的特性和潜在风险决定的。以下是具体原因和实现规范&#xff1a; 一、正确调用方式 synchronized (lockObject) {while (!condition) …

Fiori 初学记录----怎么调用后端系统odata 服务实现简单的CURD

1.对上面的内表做一个简单的增删改查的操作 SEGW 创建odata 项目&#xff0c;实现增删改查方法。如下图 2.odata 准备完毕后&#xff0c;打开vscode 下一步等待项目生成 把下面这个目录的视图&#xff1a;替换一下&#xff1a; View1.view.xml 代码&#xff1a; <…

OpenCV CUDA模块图像变形------对图像进行GPU加速的仿射变换函数warpAffine()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数用于对图像进行 GPU 加速的仿射变换&#xff08;Affine Transformation&#xff09;&#xff0c;是 cv::warpAffine 的 CUDA 版本。支持平…