【Svelte】像 vs code 一样的布局:三栏布局

直接贴代码:

<scriptlang="ts">import{browser}from'$app/environment';import{onMount}from'svelte';// Layout stateletleftWidth=$state(33.33);letmiddleWidth=$state(33.33);letisResizingLeft=$state(false);letisResizingRight=$state(false);onMount(()=>{consthandleMouseMove=(e:MouseEvent)=>{constcontainer=document.getElementById('layout-container');if(!container)return;constcontainerRect=container.getBoundingClientRect();constcontainerWidth=containerRect.width;constmouseXRelativeToContainer=e.clientX-containerRect.left;if(isResizingLeft){constnewLeftWidth=(mouseXRelativeToContainer/containerWidth)*100;constcurrentRightBoundary=leftWidth+middleWidth;// Ensure minimum widths of 5% and that we don't cross the second resizerif(newLeftWidth>5&&newLeftWidth<currentRightBoundary-5){leftWidth=newLeftWidth;middleWidth=currentRightBoundary-newLeftWidth;}}elseif(isResizingRight){constleftBoundaryPx=(leftWidth/100)*containerWidth;constnewMiddleWidth=((mouseXRelativeToContainer-leftBoundaryPx)/containerWidth)*100;// Ensure middle column doesn't get too small (min 5%)// and doesn't push the right column below 5%if(newMiddleWidth>5&&(leftWidth+newMiddleWidth)<95){middleWidth=newMiddleWidth;}}};consthandleMouseUp=()=>{isResizingLeft=false;isResizingRight=false;document.body.style.cursor='default';};window.addEventListener('mousemove',handleMouseMove);window.addEventListener('mouseup',handleMouseUp);return()=>{window.removeEventListener('mousemove',handleMouseMove);window.removeEventListener('mouseup',handleMouseUp);};});</script><divid="layout-container"class="flex h-[calc(100vh-64px)] w-full overflow-hidden bg-white"style="user-select:{isResizingLeft || isResizingRight ?'none':'auto'}"><!-- Column 1 --><divclass="flex h-full flex-col border-r-4 border-black bg-red-100 shrink-0"style="flex: 0 0{leftWidth}%"><divclass="p-8"><h1class="text-4xl font-black text-red-600">COLUMN 1 - LEFT</h1><pclass="mt-4 text-xl">If you can see this, the layout is working.</p></div></div><!-- Resizer 1 --><div class="z-10 w-2 cursor-col-resize bg-black hover:bg-primary shrink-0" onmousedown={() => { isResizingLeft = true; document.body.style.cursor = 'col-resize'; }} ></div><!-- Column 2 --><divclass="flex h-full flex-col border-r-4 border-black bg-blue-100 shrink-0"style="flex: 0 0{middleWidth}%"><divclass="p-8"><h1class="text-4xl font-black text-blue-600">COLUMN 2 - MIDDLE</h1><pclass="mt-4 text-xl">Drag the black bars to resize.</p></div></div><!-- Resizer 2 --><div class="z-10 w-2 cursor-col-resize bg-black hover:bg-primary shrink-0" onmousedown={() => { isResizingRight = true; document.body.style.cursor = 'col-resize'; }} ></div><!-- Column 3 --><divclass="flex h-full flex-grow flex-col bg-green-100 min-w-0"><divclass="p-8"><h1class="text-4xl font-black text-green-600">COLUMN 3 - RIGHT</h1><pclass="mt-4 text-xl">Everything should be visible now.</p></div></div></div><style>:global(body){user-select:none;/* Prevent text selection while resizing */}</style>

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

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

相关文章

JAVA web页面大文件上传,如何做到分块和断点续传?

大文件传输系统建设方案&#xff08;技术方案与代码示例&#xff09; 一、项目背景与核心需求 作为公司项目负责人&#xff0c;针对产品部门提出的100G级大文件传输需求&#xff0c;需构建一套高兼容性、高稳定性、全浏览器支持的解决方案。核心需求如下&#xff1a; 功能需求…

cv_unet_image-matting能否集成到网站?Web服务封装教程

cv_unet_image-matting能否集成到网站&#xff1f;Web服务封装教程 1. 能否将cv_unet_image-matting集成到自己的网站&#xff1f; 答案是&#xff1a;完全可以。 你看到的这个紫蓝渐变风格的Web界面&#xff0c;本质上就是一个独立运行的本地Web应用。它基于Flask或Gradio这…

Open-AutoGLM性能实测:不同机型响应速度对比分析

Open-AutoGLM性能实测&#xff1a;不同机型响应速度对比分析 你有没有想过&#xff0c;有一天只要说一句“帮我打开小红书搜美食”&#xff0c;手机就能自己完成点击、输入、搜索一整套操作&#xff1f;这不是科幻电影&#xff0c;而是Open-AutoGLM正在实现的现实。 Open-Aut…

TurboDiffusion社交内容应用:用户UGC视频增强实战案例

TurboDiffusion社交内容应用&#xff1a;用户UGC视频增强实战案例 1. 为什么社交平台急需TurboDiffusion这样的视频增强工具 你有没有刷到过这样的短视频&#xff1a;一张静态的旅行照片&#xff0c;突然开始缓缓推进&#xff0c;云朵在天空飘动&#xff0c;树叶随风轻摇&…

【C++23新特性全解析】:掌握这10个核心变化,让你的代码性能提升50%

第一章&#xff1a;C23新特性概述 C23作为C标准的最新演进版本&#xff0c;引入了一系列提升开发效率、增强语言表达力和优化性能的新特性。这些改进不仅让代码更简洁安全&#xff0c;也进一步强化了对现代编程范式的支持。 统一函数调用语法 C23扩展了函数调用语法&#xff0…

Paraformer置信度过低如何判断?结果可信度评估与复核机制设计

Paraformer置信度过低如何判断&#xff1f;结果可信度评估与复核机制设计 1. 置信度是什么&#xff1a;语音识别中的“打分卡” 在使用 Speech Seaco Paraformer 这类中文语音识别模型时&#xff0c;我们常看到一个数字——置信度&#xff08;Confidence Score&#xff09;。…

Z-Image-Turbo与AutoDL对比:哪种部署方式更适合初学者?

Z-Image-Turbo与AutoDL对比&#xff1a;哪种部署方式更适合初学者&#xff1f; 1. 初学者最关心的问题&#xff1a;到底该选哪个&#xff1f; 刚接触AI图像生成的朋友&#xff0c;常会遇到一个现实困惑&#xff1a;Z-Image-Turbo和AutoDL都号称“一键部署”&#xff0c;但一个…

C++ vector扩容策略详解:如何避免频繁内存分配提升程序效率

第一章&#xff1a;C STL vector 扩容机制详解 C 标准模板库&#xff08;STL&#xff09;中的 std::vector 是最常用且功能强大的动态数组容器之一。其核心特性之一是自动扩容&#xff0c;能够在元素数量超过当前容量时重新分配内存并迁移数据。 扩容触发条件 当调用 push_b…

图像修复风格一致性:fft npainting lama参考图像技巧

图像修复风格一致性&#xff1a;fft npainting lama参考图像技巧 1. 引言&#xff1a;让图像修复更自然、更连贯 你有没有遇到过这种情况&#xff1f;用AI工具去掉照片里的水印或多余物体后&#xff0c;虽然内容被成功移除&#xff0c;但修复区域和周围画面总显得“格格不入”…

麦橘超然广告创意案例:海报素材快速生成流程

麦橘超然广告创意案例&#xff1a;海报素材快速生成流程 1. 引言&#xff1a;AI 如何改变广告创意生产方式 你有没有遇到过这样的情况&#xff1f;市场部临时要出一组新品海报&#xff0c;设计团队却卡在“灵感枯竭”上&#xff0c;反复修改三天还没定稿。时间紧、任务重&…

开源AI绘画2026展望:Z-Image-Turbo引领本地化部署新浪潮

开源AI绘画2026展望&#xff1a;Z-Image-Turbo引领本地化部署新浪潮 1. Z-Image-Turbo 文生图高性能环境 1.1 镜像核心特性与技术背景 2026年&#xff0c;AI绘画已从“能画”迈向“高效出图、精准表达”的新阶段。在众多开源文生图模型中&#xff0c;阿里达摩院推出的 Z-Ima…

Java获取当前时间戳毫秒级,你真的会用吗?

第一章&#xff1a;Java获取当前时间戳毫秒级&#xff0c;你真的会用吗&#xff1f; 在Java开发中&#xff0c;获取当前时间戳是常见需求&#xff0c;尤其在日志记录、缓存控制和接口鉴权等场景中&#xff0c;毫秒级精度的时间戳尤为重要。尽管看似简单&#xff0c;但不同的实现…

Paraformer-large如何提升识别率?VAD与Punc模块集成实战详解

Paraformer-large如何提升识别率&#xff1f;VAD与Punc模块集成实战详解 1. 为什么Paraformer-large能显著提升语音识别准确率&#xff1f; 你有没有遇到过这样的情况&#xff1a;一段会议录音&#xff0c;用普通ASR工具转写出来全是“啊”、“呃”、“那个”&#xff0c;标点…

揭秘C语言读写二进制文件:99%程序员忽略的关键细节

第一章&#xff1a;揭秘C语言读写二进制文件&#xff1a;99%程序员忽略的关键细节 在C语言开发中&#xff0c;处理二进制文件是许多系统级程序和嵌入式应用的核心操作。然而&#xff0c;大量开发者在使用 fread 和 fwrite 时忽略了字节序、数据对齐和文件指针状态等关键问题&…

麦橘超然与Midjourney对比:开源VS云端绘图成本全面评测

麦橘超然与Midjourney对比&#xff1a;开源VS云端绘图成本全面评测 1. 麦橘超然&#xff1a;本地部署的AI绘画新选择 你是否也曾在深夜对着Midjourney生成的图片发呆&#xff0c;一边惊叹于它的视觉表现力&#xff0c;一边心疼着每月账单上不断跳动的订阅费用&#xff1f;如果…

CAM++是否支持英文?跨语言验证测试结果公布

CAM是否支持英文&#xff1f;跨语言验证测试结果公布 1. 引言&#xff1a;一个中文训练的模型&#xff0c;能识别英文语音吗&#xff1f; CAM 是一个基于深度学习的说话人验证系统&#xff0c;由科哥基于达摩院开源模型二次开发并封装为易用的 WebUI 工具。该系统原本设计用于…

好写作AI:别再拿AI当“高级Word”用了!这才是降维打击

提起写作软件&#xff0c;你想到的是不是自动目录、参考文献排版、或者“查找替换”功能&#xff1f;朋友&#xff0c;如果只把好写作AI当成“会打字的WPS”&#xff0c;那格局就太小了。今天带你看看&#xff0c;从“文本处理器”到“思维协作者”&#xff0c;这中间隔着一场怎…

TurboDiffusion模型切换机制:高噪声与低噪声阶段分工解析

TurboDiffusion模型切换机制&#xff1a;高噪声与低噪声阶段分工解析 1. TurboDiffusion框架概览 TurboDiffusion是由清华大学、生数科技与加州大学伯克利分校联合推出的视频生成加速框架&#xff0c;专为文生视频&#xff08;T2V&#xff09;和图生视频&#xff08;I2V&…

PyTorch镜像部署卡GPU?CUDA适配问题保姆级教程来解决

PyTorch镜像部署卡GPU&#xff1f;CUDA适配问题保姆级教程来解决 你是不是也遇到过这种情况&#xff1a;兴冲冲拉下最新的PyTorch开发镜像&#xff0c;准备开始训练模型&#xff0c;结果一运行代码&#xff0c;torch.cuda.is_available() 返回 False&#xff1f;明明机器有GPU…

中文界面友好度评分:科哥构建版用户体验细节优化

中文界面友好度评分&#xff1a;科哥构建版用户体验细节优化 1. 功能概述 这款由科哥基于阿里达摩院 ModelScope 平台的 DCT-Net 模型二次开发的人像卡通化工具&#xff0c;正式名称为 unet person image cartoon compound&#xff0c;主打中文用户友好体验。它不是简单的模型…