잠재적 인 해결책을 찾았지만 제대로 작동하지 않습니다.지도의 이벤트 스크롤을 사용 중지합니다.
$('svg')
.on("mousewheel.zoom", null)
.on("DOMMouseScroll.zoom", null) // disables older versions of Firefox
.on("wheel.zoom", null);
문제는지도가 클릭 이벤트에서 다시 그려지는 것입니다. 경우에 따라 줌 이벤트가 초기화되지 않고 스크롤이 SVG 요소를 통해 여전히 캡처됩니다. 스크롤이 '캡쳐'되면 페이지가 스크롤되지 않습니다 (원하는 동작이 아님). 프로그래밍 방식으로 SVG를 확대/축소하기 위해 스크롤 이벤트 캡처를 사용하지 않도록 설정하는 방법이 있습니까?
D3는 즉시 구속하는 것, 그리고 심지어 명시 적으로 극단적 인 바인딩을 방해 시도했다 :이있을 수 있습니다
$('.map-container, #map, g, svg, d3, div').off('scroll').unbind('scroll').undelegate('scroll');
$(window).off('scroll').unbind('scroll').undelegate('scroll');
$(document).off('scroll').unbind('scroll').undelegate('scroll');
등, 혹은 D3가이었다 바인딩의 내 기본 지식에 실패 매우 탄력적 인 방식으로 제작되었습니다.
아이디어가 있으십니까?
$('svg').on('mousewheel DOMMouseScroll', function(e) {
e.preventDefault();
});
소스 코드를 수정하지 않고 명시 적으로 해제 할 수는 없지만 이벤트 처리기에서 이벤트 소스를 확인하고 스크롤에서 오는 경우 무시할 수 있습니다. –