【发布时间】:2012-04-23 06:26:48
【问题描述】:
我想知道 Google 地图 zoom_changed 事件何时由用户与 +/- 缩放按钮的交互专门触发。如果我为 zoom_changed 使用通用事件侦听器,我无法判断它是用户生成的事件还是由 fitBounds() 之类的东西引起的缩放更改。寻找最好的方法来做到这一点。
我尝试了以下方法,但似乎都不起作用:
1) 查找有关 zoom_changed 的事件信息。好像没有。
2) 为 mouseover 和 mouseout 添加侦听器,让我设置一个标志以查看用户是否在地图边界内,并检查 zoom_changed 上的标志。这不起作用,因为地图不会将缩放按钮视为地图框架的一部分(换句话说,将鼠标悬停在缩放按钮上会触发 mouseout 事件)。
3) 为缩放按钮添加一个普通(非 gMap)监听器。但是,我找不到一个明确的 CSS 选择器,可以让我只抓取按钮。
4) 在 gMaps API 中寻找可以让我执行 getZoomElements() 之类的函数,然后我可以使用它设置侦听器。
奇怪的是,如果我向地图添加自定义控件,我可以清楚地做我想做的事。他们会强迫我这样做,而不是使用默认缩放控件,这似乎很奇怪。
【问题讨论】:
-
还要考虑鼠标滚轮——用户操作缩放的方法不止一种。
-
不要忘记触摸事件和键盘。
标签: javascript google-maps google-maps-api-3