0

我有一个谷歌地图和它右侧的滚动 div。我遇到的问题是,如果有人单击并拖动地图,然后移动到滚动 div 并按下向下箭头或 pgdn 或类似的东西,那么谷歌地图也会移动。

我不想禁用地图中的键盘输入,我想让它保持启用状态,但我想找到一种方法,当用户将滚动 div 悬停在右侧时,我可以在某些东西上触发某种 blur() 事件这将把焦点从地图上移开,这样它就不会“听到”键盘输入。

如果我在地图画布外部单击,则此方法有效,但是当用户将鼠标悬停在右侧的 div 上但没有运气时,我尝试在各种地图画布元素上调用 blur()。

有没有人遇到过类似的问题(并希望有解决方案)?

4

1 回答 1

1

好的,如果我首先正确解释它,我解决了你的一半问题。我假设您想要的行为是,当您的鼠标在地图之外时,按键可以上下移动滚动 div?否则,我写的可能会起作用(:

由于我无法在滚动 div 中强制单击,因此我想出的技巧是插入一个不可见的文本输入并使脚本在此文本框中单击。这停止了​​影响地图的按键,但我们也没有让滚动条移动。我担心在较旧的浏览器中,此单击事件会自动将 div 滚动到文本框所在的位置。取决于您的页面,但我认为保持其位置固定是一个更好的主意,例如在地图下方。

http://jsfiddle.net/xNT96/2/

我只是在 Chrome 中尝试过(鼠标移出后按键不执行任何操作)和 Firefox(如果单击滚动,当鼠标移出时,滚动 div 将随按键移动)。即使单击 div 也是不一致的。所以这远不是一个理想的解决方案,但希望我能给你一些想法:(

于 2012-04-10T20:40:31.450 回答