堆叠顺序由它们插入幻灯片的顺序决定。但是,幻灯片中的某些页面元素仍然隐藏。
有没有办法使用应用程序脚本更改 Google 幻灯片中对象的顺序?
堆叠顺序由它们插入幻灯片的顺序决定。但是,幻灯片中的某些页面元素仍然隐藏。
有没有办法使用应用程序脚本更改 Google 幻灯片中对象的顺序?
这个解决方法怎么样?我和你经历过同样的情况。当时,我已使用此解决方法移动了元素。我认为这种情况有几种解决方法。因此,请将此视为其中之一。此解决方法的流程如下。
例如,在 Google 幻灯片中,当为幻灯片创建新形状时,它会添加到pageElements
. 这意味着最后一个元素 topageElements
是最前面的。这用于解决方法。
insertPageElement()
。这些将作为新元素添加到页面中。pageElements
。这样,可以将选定的形状带到最前面和最后面。当这个流程反映到脚本时,它变成如下。
function move(page, spe) {
var pe = page.getPageElements();
spe.forEach(function(e) {
page.insertPageElement(e);
});
pe.forEach(function(f, i) {
if (spe.some(function(g) {return f.getObjectId() == g.getObjectId()})) {
pe[i].remove();
}
});
}
// Bring to back
function back() {
var slide = SlidesApp.getActivePresentation();
var selected = slide.getSelection();
var page = selected.getCurrentPage();
var pageElements = page.getPageElements();
var selectedPageElements = selected.getPageElementRange().getPageElements();
var noSelectedPageElements = pageElements.filter(function(e) {return !selectedPageElements.some(function(f) {return e.getObjectId() == f.getObjectId()})});
move(page, noSelectedPageElements);
}
// Bring to front
function front() {
var slide = SlidesApp.getActivePresentation();
var selected = slide.getSelection();
var page = selected.getCurrentPage();
var pageElements = page.getPageElements();
var selectedPageElements = selected.getPageElementRange().getPageElements();
move(page, selectedPageElements);
}
front()
或back()
。运行时front()
,选定的形状将移动到最前面。运行时back()
,它被移到最后面。如果这个答案不是你想要的,我很抱歉。
Google 于 2018 年 11 月 14 日更新了 Slides 服务,并添加了几种方法来解决此问题。
Slides 服务已通过以下新方法进行了扩展,可让您控制 Slides 中页面元素的 Z 定位。
- 向前进()
- 带到前线()
- 向后发送()
- 发送返回()