我知道这已经很旧了,但我在任何地方都看不到答案。希望它可以帮助下一个人。
当浏览器窗口大小调整时,这将动态调整 Galleria 的大小。
我遇到了类似的问题。我最终将以下函数绑定到窗口调整大小事件。我使用了调整大小事件的逻辑从这篇文章
首先,设置调整大小功能:
function ResizeGallery() {
gWidth = $(window).width();
gHeight = $(window).height();
gWidth = gWidth - ((gWidth > 200) ? 100 : 0);
gHeight = gHeight - ((gHeight > 100) ? 50 : 0);
$("#gallerycontainer").width(gWidth);
$("#gallery").width(gWidth);
$("#gallery").height(gHeight);
Galleria.loadTheme('js/galleria/themes/classic/galleria.classic.js', { show: curIdx });
}
然后将其绑定到窗口调整大小事件:
var TO = false;
$(window).resize(function () {
if (TO !== false)
clearTimeout(TO);
TO = setTimeout(ResizeGallery, 200); //200 is time in miliseconds
});
这实际上将通过重新加载默认主题来重新初始化。在此示例中,我使用第二个参数来指定要显示的图像 - 否则它将显示第一个图像。
请注意,这可能会导致另一个 Galleria 实例。我相信这是一个错误,并且发布在他们的论坛上。您可以按如下方式删除旧实例:
var gcount = Galleria.get().length;
if (gcount > 1) {
Galleria.get().splice(0, gcount - 1);
}
在 loadTheme 方法之后运行它。使用 settimeout 来延迟它,因为 loadTheme 需要一些时间才能完成。我用的是200ms。丑陋,但我需要 Galleria 的一些功能。希望这可以帮助。