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