移动用户面临很大问题:
我有一个有width: 100%
的谷歌地图,所以当用户滚动窗口时,如果触摸地图“内部”的屏幕,滚动它将仅用于地图而不是用于所有窗口...(昨天我的父亲在地图内滚动了3分钟XD)
滚动窗口可能会触摸屏幕的边框,但是非常非常严格,并非所有用户都明白这一点。
我不想要width
少100%
的地图,所以我必须找到其他解决方案......
这是只有在用两根手指触摸时才会使地图可拖动,几乎是在缩放到缩放时...
但我可以使用google maps事件吗?
也许:
google.maps.event.addListener(map, 'dblclick', function(event){
this.setOptions({draggable:true});
});
但也许在第一次点击地图时我应该提醒(用地图中的div)可以用两根手指移动地图吗?
你怎么看?和代码是否正确?非常感谢,抱歉我的英语和奇怪的问题:D
答案 0 :(得分:14)
如果您使用的是API v3.27或更高版本。在初始化地图时,只需添加属性gestureHandling: 'Cooperative'
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatLng,
gestureHandling: 'cooperative'
});
或者如果您想在创建地图后执行此操作,请执行
map.setOptions({gestureHandling: 'cooperative'});
答案 1 :(得分:3)
虽然这是一个非常奇怪的要求,但您可以尝试以下方法;
document.addEventListener('touchmove', function(e) {
e.preventDefault();
var touch = e.touches[0];
if(e.touches.length == 2){
//This means there are two finger move gesture on screen
googleMapsReference.setOptions({draggable:true});
}
}, false);
我没有在移动设备上对此进行测试,但它应该为您提供一个起点。