有人知道如何禁用CTRL+ Scroll
吗?
首先,当鼠标滚轮移动时,地图将放大/缩小。但是现在它要求按CTRL+鼠标滚轮滚动来放大/缩小。
我们如何禁用此功能?我似乎在文档中找不到任何内容:
https://developers.google.com/maps/documentation/javascript/controls#ControlOptions
有人知道如何禁用CTRL+ Scroll
吗?
首先,当鼠标滚轮移动时,地图将放大/缩小。但是现在它要求按CTRL+鼠标滚轮滚动来放大/缩小。
我们如何禁用此功能?我似乎在文档中找不到任何内容:
https://developers.google.com/maps/documentation/javascript/controls#ControlOptions
Answers:
您需要传递gestureHandling: 'greedy'
给地图选项。
文档:https : //developers.google.com/maps/documentation/javascript/interaction#gesture处理
例如:
const map = new google.maps.Map(mapElement, {
center: { 0, 0 },
zoom: 4,
gestureHandling: 'greedy'
});
更新!从Google Maps开始,3.35.6
您需要将属性封装到选项包装中:
const map = new google.maps.Map(mapElement, {
center: { 0, 0 },
zoom: 4,
options: {
gestureHandling: 'greedy'
}
});
谢谢你ealfonso
的新信息
3.29
(冻结),3.30
(发行)和更高版本(3.exp
,实验)中。
3.30
它不起作用。我测试了所有这些版本。无论如何,它现在可以使用3.26
。
如果可以完全禁用滚动缩放功能,则可以使用scrollwheel: false
。如果您为他们提供缩放控件(zoomControl: true
),则用户仍然可以通过单击缩放按钮来缩放地图。
文档:https : //developers.google.com/maps/documentation/javascript/reference (在页面上搜索“ scrollwheel”)
const map = new google.maps.Map(mapElement, {
center: { 0, 0 },
zoom: 4,
scrollwheel: false,
zoomControl: true
});
由于无法gestureHandling: 'greedy'
在地图上覆盖,因此无法为我工作。我最终检测到该mousewheel
事件并将该ctrl
属性设置为true。
// Load maps and attach event listener to scroll event.
var $map = $('.map');
$map[0].addEventListener('wheel', wheelEvent, true);
function wheelEvent(event) {
// Set the ctrlKey property to true to avoid having to press ctrl to zoom in/out.
Object.defineProperty(event, 'ctrlKey', { value: true });
}