obsidian社区插件
自定义 Excalidraw 脚本 -Frame 框架自适应大小
插件ID:%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC-frame%E6%A1%86%E6%9E%B6%E8%87%AA%E9%80%82%E5%BA%94%E5%A4%A7%E5%B0%8F
%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC-frame%E6%A1%86%E6%9E%B6%E8%87%AA%E9%80%82%E5%BA%94%E5%A4%A7%E5%B0%8F
%E8%87%AA%E5%AE%9A%E4%B9%89excalidraw%E8%84%9A%E6%9C%AC frame%E6%A1%86%E6%9E%B6%E8%87%AA%E9%80%82%E5%BA%94%E5%A4%A7%E5%B0%8F:Excalidraw 脚本 -Frame 框架自适应大小
自定义 Excalidraw 脚本 -Frame 框架自适应大小
Frame 框架自适应大小
功能:功能是将“frame”的大小和位置自适应到其中包含的元素。
源码
await ea.addElementsToView();
const els = ea.getViewElements();
const frameEls = els.filter(el => el.type === "frame");
for (let frameEl of frameEls) {
let minX = Infinity;
let maxY = -Infinity;
let maxX = -Infinity;
let minY = Infinity;
for (let i of els) {
if (i.frameId === frameEl.id) {
if (i.x < minX) minX = i.x;
if (i.x + i.width > maxX) maxX = i.x + i.width;
if (i.y < minY) minY = i.y;
if (i.y + i.height > maxY) maxY = i.y + i.height;
}
}
// 更新frame的大小和位置
frameEl.x = minX - 20;
frameEl.y = minY - 20;
frameEl.width = maxX - minX + 40;
frameEl.height = maxY - minY + 40;
await ea.addElementsToView(false, false);
}
new Notice("Frame已自适应!");
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。