谷歌地图API V3缩放仅对长时间聚焦



我在我的网站上使用谷歌地图api3,现在如果你向下滚动页面,碰巧在谷歌地图上滚动(虽然不打算),地图得到焦点并开始放大。据我所知,这是标准行为,而不是bug或其他。我只是想改变一下……

我希望有一种方法来修改多长时间它需要谷歌地图识别鼠标,并给予它聚焦/放大能力后,一段较长的时间?或者其他一些选项使它获得焦点,例如setTimeout(focus, 300);或其他。

恐怕Google Maps API没有提供任何方法来禁用默认的滚动行为。虽然您可以取消地图的缩放,但滚动事件无法到达页面。

好的,我错过了scrollwheel地图选项,它正是你所需要的。实现你想要的行为:

  • 初始化地图时设置滚轮选项为false
  • 添加鼠标悬停事件监听器,启动定时器。
  • 超时呼叫map.setOptions(options),滚轮选项设置为true。
  • 添加mouseout事件监听器,再次设置滚轮映射选项false。
实现预期行为的另一种方法是使用一个小技巧:
    创建一个透明的div并将其放置在地图上。现在div获得了滚动事件,页面也像往常一样运行。
  • 在div上调用onmouseover事件时启动计时器。
  • 超时时隐藏div。
  • 为地图添加mouseout事件监听器以再次显示div。

在设置地图选项时,可以通过设置scrollwheel:false来禁用滚轮缩放,例如

var options={
zoom:3,
center: new google.maps.LatLng(37.09, -95.71),
mapTypeId: google.maps.MapTypeID.ROADMAp,
scrollwheel:false
}

这将完全禁用地图的滚轮缩放,并纠正你在加载页面时遇到的问题

最新更新