Google Maps V3键盘辅助功能

时间:2012-02-08 15:00:11

标签: google-maps-api-3

我正在制作一张我希望能够通过键盘访问的地图。 V3默认情况下是键盘可访问的,但在单击地图之前,您似乎无法访问键盘功能。我添加了一个选择链接,它将您带到包含地图的div标签,但这没有用。有没有办法在不实际使用鼠标的情况下激活常规地图点击事件。

谢谢,

2 个答案:

答案 0 :(得分:5)

我通常这样做的方法是首先通过向其添加tabindex="0"来使地图div可聚焦。这会将其添加到浏览器的自然标签顺序中。然后我为keyup添加一个事件监听器,其中一个开关根据按下的键调用map.panBy或map.setZoom。这是一个jQuery示例,但google.maps.event.addListener(map, 'keyup', function() {...etc.});也可以这样做。 为您提供跨浏览器的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;
    }
});

答案 1 :(得分:0)

您是否尝试过使用focus()功能?