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
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86943.shtml
英文地址,請注明出處:http://en.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 版本。支持平…