所以我构建了一个地图应用程序,我可以在地图上查看我的照片。我正在使用 OpenLayers 8.2 来显示地图。当用户单击地图上的缩略图以显示完整照片时,我创建了一个单击事件,如下所示:
map.on('singleclick', function(evt) {
var feature = map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {
return feature;
});
if (feature) {
newLink = link.replace('%2Areplace%2Ame%2A', feature.get("seq"));
window.location.href = newLink;
}
});
但现在我想捕获鼠标中键(鼠标滚轮)单击,以便用户可以在新选项卡中打开照片。我似乎无法弄清楚它是如何工作的。我可以处理右键单击、触摸事件、双击,甚至滚动鼠标滚轮,但不能处理单击。
您可以在目标 html 元素上注册一个事件监听器,如下所示:
map.getTargetElement().addEventListener('mousedown', (event) => {
if (event.button === 1) {
const pixel = map.getEventPixel(event);
const features = state.map.getFeaturesAtPixel(pixel);
console.log('features:', features);
}
if (event.button === 0) {
console.log('left');
}
if (event.button === 2) {
console.log('right');
}
});