const result = await snapdom(boardsEl, {
plugins: [
{
name: 'reset-snapshot-root-zoom',
afterClone({ clone }) {
// snapdom按未缩放尺寸创建画布,克隆根节点保留zoom会导致右侧和底部留白
clone?.style.setProperty('zoom', '1')
},
},
],
})
原因找到了:`snapdom@2.24.1` 对**根节点 CSS `zoom < 1`** 仍有问题。画布按未缩放尺寸创建,但克隆内容保留了 `zoom`,所以内容缩在左上角,右侧和底部出现空边。
已修复:
- 截图克隆阶段将根节点 `zoom` 设为 `1`,不影响页面实际缩放,也不会产生闪动。
- 同步修改了 [AIMod/sandbox.ts](/Users/happyelements/project/animal-world/platforms/aweb-level-editor/src/views/Editor/ai/AIMod/sandbox.ts:186) 和 [AICreate/sandbox.ts](/Users/happyelements/project/animal-world/platforms/aweb-level-editor/src/views/Editor/ai/AICreate/sandbox.ts:213)。
- 清理了废弃的 `aleFuncs/changeZoom` 代码。
已用 Chrome 最小复现验证 `zoom=0.8` 四边正常覆盖;Prettier 检查和 ALE 生产构建均通过。
原问题:#369
带zoom的元素截图,右下有黑边,以下是ai的解决方案