저는 키보드 액세스가 가능한지도를 만들고 있습니다. V3는 기본적으로 키보드에서 액세스 할 수 있지만지도를 클릭하기 전까지는 키보드 기능에 액세스 할 수없는 것으로 보입니다. 지도를 포함하고있는 div 태그로 이동하는 select 링크를 추가했으나 작동하지 않았습니다. 실제로 마우스를 사용하지 않고 일반지도 클릭 이벤트를 활성화하는 방법이 있습니까? Google지도 V3 키보드 접근성
는그램
저는 키보드 액세스가 가능한지도를 만들고 있습니다. V3는 기본적으로 키보드에서 액세스 할 수 있지만지도를 클릭하기 전까지는 키보드 기능에 액세스 할 수없는 것으로 보입니다. 지도를 포함하고있는 div 태그로 이동하는 select 링크를 추가했으나 작동하지 않았습니다. 실제로 마우스를 사용하지 않고 일반지도 클릭 이벤트를 활성화하는 방법이 있습니까? Google지도 V3 키보드 접근성
는그램
당신이 focus()
기능을 사용하여 시도했다 주셔서 감사합니다?
내가 초점 기능을 사용했습니다. getfocus()라는 함수를 참조하는 onclick 이벤트가있는 버튼을 만들었습니다. 이 함수는 다음과 같습니다. function getfocus() {document.getElementById ("map"). focus(); }이 트릭을 할 것이라고 기대했지만 그렇지 않았습니다. 지도를 탭하여 선택할 수도 없습니다. – user1178632
일반적으로 이렇게하는 방법은 tabindex="0"
을 추가하여지도 div divide를 만드는 것으로 시작하는 것입니다. 브라우저의 자연스러운 탭 순서에 추가됩니다. 그런 다음 키 누름에 따라 map.panBy 또는 map.setZoom을 호출하는 스위치로 keyup
에 대한 이벤트 리스너를 추가합니다. 여기에 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;
}
});
이 코드가 무엇을하는지 정확히 알지 못합니다. 나는 기본적으로 내 사이트가지도에서 클릭 이벤트를 활성화하는 선택 링크를 갖게하거나 사용자가지도를 탭하여 Enter 키를 눌러지도를 선택할 수 있도록하고 싶습니다. – user1178632
이 코드를 사용하면 추가 링크가 필요 없습니다. 이렇게하면 사용자 탭이지도로 이동하고 위/아래/왼쪽/오른쪽/+/-를 눌러 이동/확대/축소 할 수 있습니다. 키보드 사용자가지도 키보드에 액세스 할 수 있도록 링크를 찾을 필요는 없습니다. 또한 이미 포커스가있는 경우 포커스를 제공하기 위해 enter 키를 눌러서는 안됩니다. – DaveS
나는 당신의 코드를 시험해 보았다. 현재 문제가되는 유일한 방법은 키보드로지도 마커/클러스터에 액세스하는 것입니다. infowindow가 표시하는 마커를 클릭하면 마커를 선택할 수있는 방법이 없습니다. 가능하다면 나는 단지 호기심이었다. – user1178632
여기에 방법을 참조하십시오 http://stackoverflow.com/a/13060527/1417588를 –