Google Map API V3 Zoom 仅适用于长时间聚焦

发布于 2024-11-27 18:52:41 字数 231 浏览 0 评论 0原文

我在我的网站中使用谷歌地图 api3,此时,如果您向下滚动页面,并且碰巧滚动谷歌地图(虽然不是故意的),则地图会获得焦点并开始放大。据我所知,这是标准行为,而不是错误或任何东西。我只是想以某种方式改变它......

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

I'm using a google map api3 in my website and at the moment if you're scrolling down the page, and happen to scroll over the google map (while not intending to), the map gets focus and starts to zoom in. As far as I'm aware, this is standard behaviour and not a bug or anything. I just would like to change it somehow...

I'm hoping there's a way to modify how long it takes the google map to recognise the mouseover and give it focus/zooming-capability after a longer period of time? Or some other option to make it gain focus i.e. setTimeout(focus, 300); or something.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北方的韩爷 2024-12-04 18:52:42

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

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

}

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

You can disable the scroll wheel zoom by setting scrollwheel:false when setting the map options for example

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

}

this will completely disable the scroll wheel zoom for the map and correct the problem you are having when you load the page

终陌 2024-12-04 18:52:41

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

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

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

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

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

I'm afraid Google Maps API doesn't offer any way to disable the default scroll behaviour. Although you can cancel zooming in the map, the scroll event doesn't reach the page.

Ok, I missed the scrollwheel map option, it does exactly what you need. To achieve your desired behaviour:

  • Set scrollwheel option to false when initializing the map.
  • Add mouseover event listener which starts the timer.
  • On timeout call map.setOptions(options) with scrollwheel option set to true.
  • Add mouseout event listener that sets the scrollwheel map option false again.

Another way to achieve the desired behaviour is to use a small trick:

  • Create a transparent div and place it over the map. Now the div gets the scroll event and the page behaves as usual.
  • Start the timer when onmouseover event is called on the div.
  • Hide the div on timeout.
  • Add mouseout event listener to the map to show the div again.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文