如何禁用Google街景视图中的键盘快捷键缩放?
根据JavaScript API,为keyboardShortcuts: false
设置google.maps.MapOptions
应阻止通过键盘进行任何控制,但
缩放仍然可以使用+
和-
键盘快捷键。
var map = new google.maps.Map(document.getElementById('map'), {
center: fenway,
zoom: 14,
keyboardShortcuts: false /* should prevent +/- zooming */
});
编辑:正如geocodezip指出的那样,keyboardShortcuts
只是架空地图的一个选项。 google.maps.StreetViewPanoramaOptions
没有这些选项。是否可以通过禁用事件手动关闭键盘快捷键?
答案 0 :(得分:1)
API 似乎不允许阻止 Google 地图注册键盘事件处理程序,但您可以intercept the events and stop them propagating:
window.addEventListener(
'keydown',
(event) => {
if (
(
// Change or remove this condition depending on your requirements.
event.key === 'ArrowUp' || // Move forward
event.key === 'ArrowDown' || // Move forward
event.key === 'ArrowLeft' || // Pan left
event.key === 'ArrowRight' || // Pan right
event.key === '+' || // Zoom in
event.key === '=' || // Zoom in
event.key === '_' || // Zoom out
event.key === '-' // Zoom out
) &&
!event.metaKey &&
!event.altKey &&
!event.ctrlKey
) {
event.stopPropagation()
};
},
{ capture: true },
);
以上会阻止通过键盘进行移动、平移和缩放,但如果您只是想阻止某些快捷方式,您可以进行调整。关键是 capture
的 addEventListener()
选项,它赋予此事件处理程序更高的优先级。