Доступность клавиатуры Google Maps V3 - PullRequest
3 голосов
/ 08 февраля 2012

Я строю карту, на которой я хотел бы быть доступной с клавиатуры.V3 по умолчанию доступна с клавиатуры, но кажется, что вы не можете получить доступ к функциональности клавиатуры, пока на карте не нажата кнопка.Я добавил ссылку для выбора, которая приводит вас к тегу div, который содержит карту, но это не сработало.Есть ли способ активировать общее событие щелчка карты без фактического использования мыши.

Спасибо,

g

Ответы [ 2 ]

5 голосов
/ 10 февраля 2012

Обычно я делаю это, делая карту div фокусируемой, добавляя к ней tabindex="0". Это добавляет его в естественный порядок вкладок браузера. Затем я добавляю прослушиватель событий для keyup с переключателем, который вызывает map.panBy или map.setZoom в зависимости от нажатой клавиши. Вот пример jQuery, но то же самое можно сделать с google.maps.event.addListener(map, 'keyup', function() {...etc.});. jQuery делает событие. которое кросс-браузер для вас, поэтому код проще.

$('#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;
    }
});
0 голосов
/ 09 февраля 2012

Вы пытались использовать функцию focus()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...