您可以通过使用普通的 DOM 事件侦听器来做到这一点。唯一的技巧是您必须使用捕获事件侦听器,以便在 Maps API 之前看到事件。这是因为 Maps API 似乎在调用event.stopPropagation()
,所以普通的事件侦听器不会看到该事件。通过使用捕获侦听器,您首先会看到它。
这是一个示例,假设您有一个#map_canvas
用于地图的#log
DIV 和一个用于事件日志的 DIV:
function initialize() {
var $map = $('#map_canvas');
var latLng = new google.maps.LatLng( 40.708762, -74.006731 );
var map = new google.maps.Map( $map[0], {
zoom: 15,
center: latLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
function wheelEvent( event ) {
$('#log').append( '<div>wheel!</div>' );
}
$map[0].addEventListener( 'mousewheel', wheelEvent, true );
$map[0].addEventListener( 'DOMMouseScroll', wheelEvent, true );
};
$( initialize );
请注意,该代码同时侦听DOMMouseScroll
Firefox 的mousewheel
事件和其他浏览器的事件。您需要注意event
这两个事件的对象差异。
这是小提琴。