google-maps-api-3 - Google map V3 键盘辅助功能

标签 google-maps-api-3

我正在构建一张 map ,我希望它可以通过键盘访问。 V3 默认情况下可通过键盘访问,但似乎在单击 map 之前无法访问键盘功能。我添加了一个链接来选择它会将您带到包含 map 的 div 标签,但这没有用。有没有什么方法可以在不实际使用鼠标的情况下激活一般的 map 点击事件。

谢谢,

最佳答案

我通常这样做的方法是首先通过向其添加 tabindex="0" 使 map div 可聚焦。这会将其添加到浏览器的自然 Tab 键顺序中。然后,我为 keyup 添加了一个事件监听器,其中包含一个根据按下的键调用 map.panBy 或 map.setZoom 的开关。这是一个 jQuery 示例,但同样可以使用 google.maps.event.addListener(map, 'keyup', function() {...etc.}); 来完成。 jQuery 为您制作 event.which 跨浏览器,因此代码更简单。

$('#map').keyup(function(event) {
    var o = 128; // half a tile's width 
    switch(event.which) {
        case 37: // leftArrow
            map.panBy(-o,0);
            break;
        case 38: // upArrow
            map.panBy(0,-o);
            break;
        case 39: // rightArrow
            map.panBy(o,0);
            break;
        case 40: // downArrow
            map.panBy(0,o);
            break;
        case 109: // numpad -
        case 189: // -
            map.setZoom(map.getZoom()-1);
            break;
        case 107: // numpad +
        case 187: // =
            map.setZoom(map.getZoom()+1);
            break;
    }
});

关于google-maps-api-3 - Google map V3 键盘辅助功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9195814/

相关文章:

google-maps-api-3 - 根据缩放 Google map v3 调整标记大小

javascript - 删除标记后如何删除信息窗口?

javascript - Google map API 未显示所有标记

Javascript:Google Maps API:如果 map 加载到隐藏的容器中,则为空白 map

javascript - 如何添加新标记并计算新路线

google-maps - AIR – 违反 Google Maps API 安全沙盒?

javascript - 如何使用 Google map 标记内的 UI Router 更改状态?

javascript - 将服务注入(inject)选项卡 ionic 2

javascript - 将纬度/经度值推送到我的 Google map API 并将标记移动到事件中的该位置

javascript - 处理 google photo reference 获取图片 url