工作记录:vue-grid-layout 修改 margin 导致 item 高度剧烈变化

问题

用 vue-gird-layout 时发现,当改变 margin 值时,item 的尺寸也会跟着变化。

如下图:row height 和每个 item 的 h 都保持不变。修改 margin-y,item 的实际高度也跟着变了:
在这里插入图片描述


原因

研究了一番,发现原因。关键在于网格模式

考虑以下情况:第一列是两个 h=1 的item,第二列是一个 h=2 的 item。无论 margin 是多少,都应该保证第一和第二列的底部是平齐的(不然网格逻辑就崩溃了)

在这里插入图片描述
记 h=1 的 item 的实际高度为 real_height。
那么 h=2 的 item 的实际高度不应该是简单的 2 * real_height,而应该是 2 * real_height + margin_y。
同理 h=x 的 item 的实际高度应该是 x * real_height + (x-1) * margin_y

所以就出现了最上面说的问题。而且 h 越大的 item,需要“补齐”的 margin 就越多。


解决

其实 vue-grid-layout 的实现逻辑是合理的。但是不符合我的需求:我项目中的 row height 的值设置得比较小,导致每个 item 的 h 都很大。margin 稍微一变,item 的实际高度就剧烈变化,效果不好。

我的理想效果是:在保持网格系统效果(对齐)的同时,margin 变化时 item 的高度不要剧变。

思路:将 vue-grid-layout 的 margin-y 设置为 0,在 item 中自己模拟一个 margin 的效果

具体实现:

  1. 传给 grid-layout 的 marginY 恒为0

  2. item 内部模拟margin,grid-item 设置属性 drag-allow-from

    在这里插入图片描述
    整体效果:
    在这里插入图片描述

  3. 挪动 resize-handle 的位置

    .vue-grid-item:not(.vue-grid-placeholder) > .vue-resizable-handle {bottom: 50px !important;
    }
    

    在这里插入图片描述

  4. 把 placeholder 改小:

    placeholder 是在drag或者resize时的一个图形提示,下图粉色背景的:

    在这里插入图片描述

    placeholder 的大小没法改。正好它下面有一个没用的 .vue-resizable-handle。把真正的 placehoder 背景去掉,用它内部的 handle 伪装 placeholder。

    .vue-grid-placeholder {background: none !important;
    }
    .vue-grid-placeholder .vue-resizable-handle {position: absolute;bottom: 50px !important;background: pink !important;width: auto !important;height: auto !important;
    }
    

    改后的效果:

    在这里插入图片描述

最终效果:

在这里插入图片描述

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

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

相关文章

python flask 假死情况处理+https证书添加

前言 当使用flask编写了后台程序跑在服务器端的时候,有时候虽然后台中显示在运行,但是页面无法访问,出现这个情况可以使用如下方法修改代码,进而防止假死,另外记录下flask下证书的添加。 假死处理 出现进程存在&…

SSM项目前后端分离详细说明

1.后端 1.1打包 说明:使用idea打开项目,然后进行打包。 1.2tomcat 说明:把后端打成war包后放入tomcat启动。 1.3启动tomcat 说明: 找到tomcat中bin目录中的startup.bat文件,进行启动。如果启动失败,可以…

【热门话题】PostCSS:现代前端开发中的CSS增强工具

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 PostCSS:现代前端开发中的CSS增强工具一、引言二、PostCSS简介2.1 核…

大数据计算引擎中的Calcite

1.Calcite介绍 Calcite是一个动态数据库管理框架,具备数据库管理系统的功能 Calcite具备SQL解析、校验、优化、生成、连接查询等功能 Calcite能够为不同平台和数据源提供统一的查询引擎 2.Calcite能力 比如,对于HBase而言,没有SQL查询的能力…

C++ 并发编程 - 入门

目录 写在前面 并发编程,启动! 写在前面 计算机的并发指在单个系统里同时执行多个独立的任务。 在过去计算机内只有一个处理器时并发是通过快速的切换进程上下文所实现的,而现在计算机已经步入了多核并发时代,所以多个进程的并…

号卡流量卡分销推广系统源码

这是一个多功能的流量卡推广分销系统PHP源码,它是一套完善的、功能丰富的号卡分销系统,拥有多个接口,包括运营商接口,以及无限三级代理。这是目前市面上最优雅的号卡系统,没有之一。 软件架构说明: 环境要求…

239. 滑动窗口最大值/76. 最小覆盖子串

239. 滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,-…

python获取文件路径

文件:allpath_parameter.py # 获取当前目录路径 # current_dir os.getcwd() # 获取当前目录路径 realpath00 os.path.abspath(os.path.join(os.path.dirname(os.path.split(os.path.realpath(__file__))[0]), .)) print(realpath00)# 获取当前目录的上级目录路…

深圳智能抄表:现代城市管理的新篇章

1.行业背景和创新 深圳,做为中国最有创新力的城市之一。智能抄表是这处城市在公共服务领域的一次重大自主创新,是利用物联网技术、大数据和云计算等先进技术,改变了传统的手工制作抄水表方法,提高了效率,减少了偏差&a…

第一篇:Python简介:开启你的编程之旅

Python简介:开启你的编程之旅 在这个系列文章中,我将带领大家深入了解Python——一个极具魅力的编程语言。如果你对编程感兴趣,想要掌握一门既实用又强大的语言,那么Python无疑是一个绝佳的选择。本篇文章是这个系列的序章&#…

vue3 h5模板

vue3的h5模板 基于vue3tsvantrem的h5模板 觉得帮到你了就给个start

C++之通俗易懂学模版

目录 一、了解什么是泛性编程 二、模版 1.函数模版 1.1 函数模板概念 1.2 函数模板格式 1.3 函数模板的原理 1.4 函数模板的实例化 1.5 模板参数的匹配原则 2.类模板 2.1 类模板的定义格式 2.2 类模板的实例化 3. 非类型模板参数 4. 模板的特化 4.1 概念 4.2 …

java:Http协议和Tomcat

HTTP协议 Hyper Text Transfer Protocol 超文本传输协议,规定了浏览器和服务器之间数据传输的规则 特点: 基于TCP协议,面向连接,安全 基于请求响应模型:一次请求对应一次响应 HTTP协议是无状态协议,对事务的处理没有记忆能力,每次请求-响应都是独立的. 优点 速度较快 …

OceanBase开发者大会实录 - 阳振坤:云时代的数据库

本文来自2024 OceanBase开发者大会,OceanBase 首席科学家阳振坤的演讲实录——《云时代的数据库》。完整视频回看,请点击这里 >> 在去年的开发者大会中,我跟大家分享了我对数据库产品和技术一些看法,包括单机分布式一体化&…

书生·浦语 大模型(学习笔记-9)OpenCompass 大模型评测实战

目录 一、评测实现双赢 二、评测遇到的问题 三、如何评测大模型(大概总结4大类方法) 四、评测工具链及流水线 五、实战评测 GPU的环境安装 查看支持的数据集和模型 启动评测(会缺少protibuf库,提前安装) 测评结果 一、评…

Android Studio实现内容丰富的安卓校园超市

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 项目代号168 1.开发环境 后端用springboot框架,安卓的用android studio开发 android stuido3.6 jdk1.8 idea mysql tomcat 2.功能介绍 安卓端: 1.注册…

【R语言简介】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

小程序AI智能名片S2B2C商城系统:实现分销模式的四大要件深度解析

在当前的电商领域,小程序AI智能名片S2B2C商城系统正以其独特的分销模式,引领着行业创新的风潮。这种模式的成功,离不开四大核心要件:商品、机制、平台和运营。接下来,我们将对这四大要件进行深度解析。 首先&#xff0…

直播美颜SDK工具解析:揭秘实时视频美颜处理技术

今天,小编将与大家共同探讨直播美颜SDK工具背后的实时视频美颜处理技术,揭秘其原理和工作机制。 一、美颜算法的发展 在美颜算法的发展过程中,深度学习技术的应用起到了至关重要的作用。经过大量、多次的不断重复训练,美颜的算法…

pycharm编辑器------快捷键

pycharm编辑器基础快捷键 上下文操作 01PyCharm 有数百个上下文相关操作,可以帮助您转换、改进和修正代码。按 AIt Enter 以调用“显示上下文操作"。 02我们来应用第一个快速修复:移除形参。 03您几乎可以在任何上下文中调用"显示上下文操作"。我们…