Google Map API V3仅在长时间对焦时缩放

时间:2011-08-05 00:18:32

标签: google-maps-api-3 focus zoom

我在我的网站上使用谷歌地图api3,如果你正在向下滚动页面,并且碰巧滚动谷歌地图(虽然不打算),地图会聚焦并开始缩放在。据我所知,这是标准行为,而不是一个错误或任何东西。我只是想以某种方式改变它......

我希望有一种方法可以修改谷歌地图识别鼠标悬停所需的时间,并在较长时间后使其具有焦点/缩放功能?或者使其获得焦点的其他选项,即setTimeout(focus, 300);或其他。

2 个答案:

答案 0 :(得分:8)

我担心Google Maps API无法提供任何禁用默认滚动行为的方法。虽然您可以取消地图中的缩放,但滚动事件不会到达页面。

好的,我错过了scrollwheel地图选项,它完全符合您的需求。为了达到理想的行为:

  • 初始化地图时将滚轮选项设置为false。
  • 添加启动计时器的鼠标悬停事件监听器。
  • 在超时调用map.setOptions(options)上,滚轮选项设置为true。
  • 添加mouseout事件侦听器,再次将scrollwheel map选项设置为false。

实现所需行为的另一种方法是使用一个小技巧:

  • 创建一个透明的div并将其放在地图上。现在div得到滚动事件,页面表现像往常一样。
  • 在div上调用onmouseover事件时启动计时器。
  • 超时时隐藏div。
  • 将mouseout事件监听器添加到地图以再次显示div。

答案 1 :(得分:2)

您可以通过设置滚轮来禁用滚轮缩放:设置地图选项时为false

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

}

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