缩放
本指南展示了如何使用 Zoom API。
JxBrowser 允许缩放网页内容或所有网页内容,获取网页缩放级别更改时的通知,覆盖默认的缩放级别等。
要使用适用于所有网页的全局缩放,请使用 ZoomLevels 类。可以通过 Profile 获取此类的实例。例如:
var zoomLevels = profile.zoomLevels();
val zoomLevels = profile.zoomLevels()
如果您使用 Engine.zoomLevels() 那么您将获得与默认 Profile 关联的 ZoomLevels 实例。
要控制加载在 Browser 实例中的网页的缩放,请使用 Zoom 类。
默认缩放级别
所有网页的默认缩放级别为 100%。要更改默认缩放级别,请使用 ZoomLevels.defaultLevel(ZoomLevel) 方法。
以下代码将所有网页的默认缩放级别设置为 150%:
zoomLevels.defaultLevel(ZoomLevel.P_150);
zoomLevels.defaultLevel = ZoomLevel.P_150
缩放模式
默认情况下,缩放范围限定为已加载网页的来源。如果同一
profile 中的两个浏览器都显示来自 https://example.com
的页面,在其中一个浏览器中缩放会同时更改另一个浏览器的
缩放级别。这是 PER_ORIGIN 模式。
如果您希望缩放仅应用于特定浏览器,请切换到
PER_BROWSER 模式:
browser.zoom().mode(ZoomMode.PER_BROWSER);
browser.zoom().mode(ZoomMode.PER_BROWSER)
在此模式下,一个浏览器中的缩放级别更改不会影响其他浏览器, 即使它们显示来自同一来源的页面。
更改模式会保留当前的缩放级别。即使缩放已禁用,仍可更改模式 — 当重新启用缩放时,该模式将生效。
要切换回默认行为:
browser.zoom().mode(ZoomMode.PER_ORIGIN);
browser.zoom().mode(ZoomMode.PER_ORIGIN)
控制缩放
您可以使用 Zoom 类在程序中对加载在 Browser
中的网页内容进行缩放,或者在具有触摸屏的环境中使用触摸手势
进行缩放。
要更改缩放级别,您需要等待网页完全加载。
放大
要在当前加载的网页上执行放大操作,请使用以下方法:
zoom.in();
zoom.`in`()
缩小
要在当前加载的网页上执行缩小操作,请使用以下方法:
zoom.out();
zoom.out()
设置缩放级别
以下代码将已加载网页的缩放级别设置为 200%:
zoom.level(ZoomLevel.P_200);
zoom.level = ZoomLevel.P_200
重置缩放
要将缩放级别重置为默认值,请使用以下代码:
zoom.reset();
zoom.reset()
禁用缩放
您可以使用 Zoom.disable() 方法禁用 Browser 中加载的所有网页的缩放功能。此方法禁用缩放功能并将缩放级别重置为默认值。之后,所有通过 JxBrowser 缩放 API 进行的程序化缩放尝试以及在触摸屏设备上使用的触摸手势将被忽略。
例如:
zoom.disable();
zoom.disable()
缩放事件
要在特定网页的缩放级别发生变化时获取通知,请使用 ZoomChanged 事件。例如:
zoomLevels.on(ZoomLevelChanged.class, event -> {
var host = event.host();
var zoomLevel = event.level();
});
zoomLevels.subscribe<ZoomLevelChanged> { event ->
val host = event.host()
val zoomLevel = event.level()
}
双指缩放
目前 JxBrowser 不支持 macOS 上通过捏合缩放触控板手势来进行缩放。