【发布时间】:2015-02-23 11:59:44
【问题描述】:
为避免在小型浏览器窗口中出现不必要的滚动,我将 Google 地图的 draggable 选项设置为 false:
if (document.getElementById('map').offsetWidth < 350 )
map.setOptions({
draggable: false,
scrollwheel: false
});
然后,我添加了一个计时器/功能,如果用户需要,它可以在鼠标按下一秒后进行拖动(有点长按):
var timer = null;
function draggable_true() {
map.setOptions({
draggable: true,
scrollwheel: true
});
}
var mdown = google.maps.event.addDomListener(map, 'mousedown', function() {
timer = setTimeout( draggable_true, 1000 );
});
var mup = google.maps.event.addDomListener(map, 'mouseup', function() {
clearTimeout( timer );
});
这很好用,一秒钟后光标变为手形符号。但是要拖动地图,我必须松开鼠标按钮并再次按下它。所以现在我想知道如何直接拖动地图(鼠标按钮已经并且仍然向下)。
我在 draggable_true() 函数中尝试了 MouseEvent 来模拟另一个鼠标按下,但它不起作用:
var event = new MouseEvent('mousedown', {
'view': window,
'bubbles': true,
'cancelable': true
});
document.getElementById('map').dispatchEvent(event);
我也试过 mouseup 然后 mousedown,但也没有结果(甚至没有错误或警告)。
那么有人有什么想法吗?谢谢。
【问题讨论】: