Google街景JavaScript API禁用键盘缩放功能

时间:2017-09-11 17:22:06

标签: google-maps google-street-view

如何禁用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 */
});

这是example fiddle

编辑:正如geocodezip指出的那样,keyboardShortcuts只是架空地图的一个选项。 google.maps.StreetViewPanoramaOptions没有这些选项。是否可以通过禁用事件手动关闭键盘快捷键?

1 个答案:

答案 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 },
);

以上会阻止通过键盘进行移动、平移和缩放,但如果您只是想阻止某些快捷方式,您可以进行调整。关键是 captureaddEventListener() 选项,它赋予此事件处理程序更高的优先级。