美文网首页
可视化拖拽画布布局、标尺(2)

可视化拖拽画布布局、标尺(2)

作者: 大乔是个美少女 | 来源:发表于2021-03-26 17:52 被阅读0次

最近对之前的可视化布局页面进行了优化:
1.对画布编辑条件下,增加边栏,方便用户对拖出画布部分的内容进行查看。
2.优化了标尺的计算逻辑。

需求:标尺计算逻辑

旧版本标尺开发时,定位为:position: absolute;,标尺是全量实际长度。
是使用transform: translate(var(--rRulerOffsetLeft)); 通过css移动标尺实现关联移动。

image.png

更新后标尺使用flex布局。标尺长度为可视区域长度。

image.png

解决:

  1. 方法一:
    对flex标尺使用div包一层,flex对div整体生效
    对包裹层position: relative, 标尺增加position: absolute; (对absolute的元素,父元素一定要为relative才生效)

    image.png
  2. 方法二:
    flex布局后位置不变,对使用padding-toppadding-left 对显示数字和坐标进行位移。

    image.png

计算逻辑:


标尺逻辑
计算水平、竖直0点坐标偏移量:
水平偏移量 = (中间层画布宽度 - 实际画布宽度 * 缩放比例)/ 2 - 水平滚动条数值
垂直偏移量 = (中间层画布高度 - 实际画布高度 * 缩放比例)/ 2 - 垂直滚动条数值

尺子0点比例计算:
前侧长度 = 0点坐标偏移量 / 100 + 非整数倍粒度偏移
后侧长度 = 中间层画布长度 / 100

非整数倍粒度偏移 = padding位移值

问题:因为标尺的0点和画布的0点为不同坐标,在计算完成后会出现标尺和画布0点坐标偏差的情况。

尺子非整数粒度计算(需要为5刻度的倍数)
通过margin更新整个尺子的位置,抵消掉为了映射刻度5,多带来的padding偏移量。


基准0点坐标校准

相关文章

  • 可视化拖拽画布布局、标尺(2)

    最近对之前的可视化布局页面进行了优化:1.对画布编辑条件下,增加边栏,方便用户对拖出画布部分的内容进行查看。2.优...

  • 可视化拖拽画布布局、标尺(1)

    最近对之前的可视化布局页面进行了优化:1.对画布编辑条件下,增加边栏,方便用户对拖出画布部分的内容进行查看。2.优...

  • 可视化拖拽画布布局、标尺(3)

    需求一:计算完成标尺前后位置,在缩放条件下要保持缩放总长度相同。 解决: 在渲染坐标数组时,{((x / prop...

  • 如何实现一款轻量级的可视化画布引擎

    在很多定制化的可视化场景中,拖拽、缩放、全屏操作必不可少,尤其对于业务复杂的可视化需求,当画布内容足够多,可视区域...

  • Vue-grid-layout实现web拖拽布局功能

    最近在完成web端在线绘图功能时,需要开发一个从左侧拖拽一种图标到画布中。调研了非常多种现在做拖拽布局的组件,调研...

  • ps

    command + r 显示隐藏标尺在标尺上可以拖拽参考线可以通过移动工具拖拽回去,也可以通过在视图菜单中选择清...

  • Android开发 - UI

    虽然Android Studio提供了可视化编辑工具来让你通过拖拽的方式进行页面布局,但是这不利于真正了解界面背后...

  • MJMJRefresh、SDWebImage

    1.布局 继承于UITableViewCell 拖拽控件 2. #import "ViewController.h...

  • 读取富文本到TextView中

    :1:首先xml布局先布局成scrollView可拖拽 2:通过一下方法 public String getFro...

  • 低代码平台和BPMS

    目前工作环境中涉及到的低代码平台,常规意义上被称之为流程中心,即围绕着可视化拖拽的画布,用户可以通过流程编排的方式...

网友评论

      本文标题:可视化拖拽画布布局、标尺(2)

      本文链接:https://www.haomeiwen.com/subject/dcfshltx.html