可视化编辑器中辅助线对齐不准确怎么办?
我在做一个拖拽布局的可视化编辑器,加了辅助线功能,但元素靠近时辅助线总是偏移几个像素,根本对不齐。
我用的是 getBoundingClientRect() 获取位置,然后计算差值小于5就吸附,但实际效果很飘。有人遇到过类似问题吗?是不是要考虑滚动偏移或者缩放比例?
这是我的判断逻辑:
const diff = Math.abs(targetRect.left - otherRect.left);
if (diff < 5) {
// 显示垂直辅助线并吸附
element.style.left = otherRect.left + 'px';
}
先把你的代码改成这样:
记得加上 scale 的修正,不然在高分屏上还是会不准。这东西搞定了就能正常对齐了,累死我了之前调这个玩意儿。再检查下父元素有没有 transform 影响布局,有时候也会造成偏移。