谷歌地图API在移动设备上滑动与屏幕滚动冲突
Google Maps API swipe on mobile conflicts with screen scrolling
当用户在移动设备上查看我的网站时,有时他们会遇到 Google 地图滚动进入视图并覆盖整个页面的情况。他们无法再滚动,因为当他们向上或向下滑动时,他们只会平移 Google 地图中的视图,而不会滚动网页。
传统上,我在移动设备上的解决方法是这样的:
var mapOptions = {
draggable: false,
panControl: true,
}
这基本上禁用了谷歌地图上的滑动事件,因此用户可以滑动以滚动网页。如果用户想要实际平移地图,他们可以单击平移按钮 UI。
从3.22版本开始,谷歌地图API已经禁用了平移控制按钮,参见官方谷歌文档。这给我带来了一个大问题 - 如果我禁用"可拖动",没有其他方法可以平移地图
如何让用户能够使用轻扫手势滚动网页,同时允许用户根据需要平移地图?
这完全取决于您网站的设计/流程。我可以根据与您类似的情况提供一些我必须实施的解决方案。
1)如果地图不是页面的主要内容,您可以简单地检查浏览器是否是移动浏览器,并将地图div替换为静态地图图像,单击该图像会打开专用于地图的页面。
2) 您可以在地图顶部叠加一个操作,通过map.setOptions({draggable: true/false});
切换地图的禁用属性,以便用户可以自行打开和关闭它。
前面的答案有效。并允许它可拖动到非触摸设备。
var myOptions = {
// your other options...
draggable: !("ontouchend" in document)
};
map = new google.maps.Map(mapElem, myOptions);
相关文章:
- 如何知道元素在屏幕上是否可见.如果没有,请滚动页面
- 当canvas's的高度超过屏幕's的高度(当滚动条出现时)
- 到达屏幕末端/顶部时自动滚动
- 当用户将鼠标移到屏幕/图表上时,自动滚动将暂停.如果鼠标移动停止,自动滚动将再次恢复
- 移动/触摸屏幕 - 滑动时水平滚动
- 查找's在可见屏幕(视口)的中间,滚动时
- 一页签出滚动到下一页的屏幕底部
- 如何在滚动/调整大小时保持背景图像覆盖屏幕
- 无限滚动可在快速滚动时跳转到屏幕顶部
- 单击滑块可更改屏幕的滚动
- 使用媒体查询在较小的屏幕上仅滚动模态的距离
- 在屏幕顶部附近滚动元素时触发的侦听器
- JavaScript 用于当用户向下滚动屏幕时弹出的建议框
- 如何检查该元素是否在网页屏幕上,当有人滚动到该元素时,我也想要一个触发器
- 如何滚动以在屏幕底部设置 DIV 的底部(监视器)
- 如果没有使用跨浏览器表达式的滚动条,则无法获取屏幕宽度
- 如何根据屏幕宽度控制
- 单击提交按钮后,屏幕向下滚动,不执行任何操作
- jQuery Tools 可滚动:屏幕上有 3 个项目,但一次滚动一个
- 谷歌地图API在移动设备上滑动与屏幕滚动冲突