我使用 JQuery。我使用谷歌地图 api v3。
现在,在我的 iPhone 上,如果我将手指放在地图的区域上,我就无法向下滚动页面。
draggable : false
在地图的选项中不起作用。它只是阻止地图在内部移动。
找到了这些类似的问题,但无法从中得到答案:
有什么简单的方法可以做到这一点?看起来谷歌是故意这样做的!(显然不是)
编辑#1:
我不能使用静态地图。
我使用 JQuery。我使用谷歌地图 api v3。
现在,在我的 iPhone 上,如果我将手指放在地图的区域上,我就无法向下滚动页面。
draggable : false
在地图的选项中不起作用。它只是阻止地图在内部移动。
找到了这些类似的问题,但无法从中得到答案:
有什么简单的方法可以做到这一点?看起来谷歌是故意这样做的!(显然不是)
编辑#1:
我不能使用静态地图。
<div>
在地图上放一个透明的<div>
应该可以解决问题。
或者,如果您不想要任何类型的交互性,只需使用静态地图 API 。(它更轻量级,因为你嵌入的只是一张图片。)
josh3736 的回答对我有帮助,谢谢。我想用我的解决方案扩展它:
我做的第一件事是添加了一个#overlay div,就像 josh3736 提到的那样。
然后我实现了一个小 jQuery 脚本来检测用户是否正在做某事或处于空闲模式:
// jQuery Idle
idleTimer = null;
idleState = false;
idleWait = 2000;
(function ($) {
$(document).ready(function () {
$('*').bind('mousemove keydown scroll', function () {
clearTimeout(idleTimer);
if (idleState == true) {
// Reactivated event
$('html').removeClass('idle');
$('html').addClass('no-idle');
}
idleState = false;
idleTimer = setTimeout(function () {
// Idle Event
$('html').addClass('idle');
$('html').removeClass('no-idle');
idleState = true; }, idleWait);
});
$("body").trigger("mousemove");
});
}) (jQuery)
如您所见,该脚本正在向 html 添加类:idle 和 no-idle。
之后,我添加了以下 CSS-Snipet:
#map-overlay {
display: none;
position: absolute;
z-index: 500;
}
.idle #map-overlay {
display: block;
}
如您所见,这个想法是用户一旦不再空闲就可以使用地图功能。并且由于事实上,在滚动后空闲开始,它就像触摸设备的魅力一样。
希望这可以帮助。