小编dou*_*_nc的帖子

GMaps v3:如何在滚动地图之前取消鼠标滚动事件

使用谷歌地图v2,我能够阻止鼠标滚动(DOMMouseScroll)事件进入地图并通过处理和取消鼠标滚动事件来缩放地图.但是,在第3版中,这不再有效.

这是一个例子.尝试使用鼠标滚轮滚动文本

请注意拖动和双击在到达地图之前是如何取消的,但是如果您尝试滚动文本,那么DOMMouseScroll事件将直接进入地图.

取消事件的代码与v2基本相同,如下所示:

  // Set the overlay's div_ property to this DIV
  this.div_ = div;

  var cancelEvent = function(e)
  {

        if( (navigator.userAgent.toLowerCase().indexOf('msie') != -1    && document.all) ||
                  navigator.userAgent.indexOf('Opera') > -1)  {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        } else {
            e.stopPropagation();
        }

        return false;
  }

  var panes = this.getPanes();
  panes.floatPane.appendChild(div);

  var stealEvents = [ 'mousedown', 'dblclick', 'DOMMouseScroll', 'onmousewheel', 'drag'];

  for( i=0; i < stealEvents.length; i++ ){
    google.maps.event.addDomListener(this.div_, stealEvents[i], cancelEvent);
  }


    // for IE/Opera
    if( (navigator.userAgent.toLowerCase().indexOf('msie') != -1    && document.all) …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps overlay google-maps-api-3 dom-events

4
推荐指数
1
解决办法
3931
查看次数