使用Google Maps API v3:如何在鼠标悬停在特定区域时更改鼠标光标?当我将鼠标悬停在Google Map v3中的特定区域上时,如何更改鼠标光标?
14
A
回答
25
是的,这是在这个MapOptions设置draggableCursor
,如下面的例子可能:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps v3 Change Cursor Demo</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"
type="text/javascript"></script>
</head>
<body>
<div id="map" style="width: 500px; height: 350px"></div>
<script type="text/javascript">
var map = new google.maps.Map(document.getElementById("map"), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 8,
center: new google.maps.LatLng(-34.3, 150.6)
});
var ne = new google.maps.LatLng(-34.00, 150.00);
var nw = new google.maps.LatLng(-34.00, 150.50);
var sw = new google.maps.LatLng(-35.00, 150.50);
var se = new google.maps.LatLng(-35.00, 150.00);
var boundingBox = new google.maps.Polyline({
path: [ne, nw, sw, se, ne],
strokeColor: '#FF0000'
});
boundingBox.setMap(map);
google.maps.event.addListener(map, 'mousemove', function(event) {
if ((event.latLng.lat() > se.lat()) && (event.latLng.lat() < ne.lat()) &&
(event.latLng.lng() > ne.lng()) && (event.latLng.lng() < sw.lng())) {
map.setOptions({ draggableCursor: 'crosshair' });
}
else {
map.setOptions({ draggableCursor: 'url(http://maps.google.com/mapfiles/openhand.cur), move' });
}
});
</script>
</body>
</html>
如果你运行上面的例子中,光标会变成一个十字线,一旦鼠标内部的移动红色的矩形。
Google Maps Change Cursor http://img535.imageshack.us/img535/5923/mapcursor.png
2
建议到其他的答案把整个地图对象“鼠标移动”听众会工作,但都错了。这是“沉重的手”,一个糟糕的主意,因为这样的听众可以加入一个真正的应用程序,并与地图上发生的其他事情相结合,可能会导致严重的性能问题和可能无法预料的竞争条件!
最好的方法是使用google.maps.Polygon
类。这使您可以传递一系列LatLng对象来创建多边形。此多边形在地图上呈现,并具有默认的mouseover属性为'pointer',您可以向类调用返回的对象添加'mouseover'侦听器。
从这个例子下面的来源是 http://code.google.com/apis/maps/documentation/javascript/examples/polygon-simple.html
var myLatLng = new google.maps.LatLng(24.886436490787712, -70.2685546875);
var myOptions = {
zoom: 5,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var bermudaTriangle;
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var triangleCoords = [
new google.maps.LatLng(25.774252, -80.190262),
new google.maps.LatLng(18.466465, -66.118292),
new google.maps.LatLng(32.321384, -64.75737)
];
bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 3,
fillColor: "#FF0000",
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
然后我可以添加监听器这样
google.maps.event.addListener(bermudaTriangle, 'mouseover', function() {
map.setZoom(8);
});
//now if you mouse over the Polygon area, your map will zoom to 8
相关问题
- 1. 当鼠标悬停在TreeNode上时,如何更改光标?
- 2. 将鼠标悬停在JSplitPane分隔线上时更改光标
- 3. asp:gridview在鼠标悬停时在标头中更改光标
- 4. slick2d鼠标悬停区域?
- 5. 当鼠标悬停在按钮上时更改光标的图标
- 6. 当我将鼠标悬停在表格中的文本上时,如何停止将光标更改为I栏?
- 7. 将鼠标悬停在鼠标上
- 8. Jssor光标鼠标悬停
- 9. 鼠标悬停更改标记图标(谷歌地图V3)
- 10. 如何更改鼠标指针上的鼠标悬停分手?
- 11. 更改jQuery的鼠标悬停到窗口鼠标悬停
- 12. 当鼠标悬停在引导按钮上时阻止光标更改
- 13. geoxml3:z-index问题和更改鼠标悬停上的光标
- 14. 当鼠标悬停在HTML上时,如何更改图像?
- 15. 更改鼠标悬停/失败图标
- 16. 如何在鼠标左键关闭时更改鼠标光标?
- 17. 当鼠标悬停Google地图时禁用鼠标EventListener
- 18. PyQt:当鼠标悬停按钮时改变光标
- 19. 当鼠标光标悬停在图像上时,我该如何做些什么
- 20. 如何在鼠标悬停放置目标时更改拖放光标
- 21. Google Earth API在鼠标悬停上更改地标图像
- 22. 当鼠标悬停在标记上时如何强制默认光标
- 23. 当鼠标悬停在控件上时拦截鼠标单击
- 24. 如何使鼠标离开功能停止,当鼠标悬停特定的div
- 25. 鼠标悬停时,光标不会更改为I-bar JTextField
- 26. 当我将鼠标悬停在按钮上时,如何更改div的文本?
- 27. 如何将鼠标悬停在div ID上时更改颜色?
- 28. 仅当特定元素超过鼠标光标时才更改
- 29. 没有在鼠标悬停/鼠标悬停定义jQuery事件
- 30. 如何更改鼠标点击鼠标悬停?
的例子并不出于某种原因,但代码实际工作时我在我的代码中尝试它! – Michel 2011-07-12 13:54:42
该示例只是一个图像:) – Alp 2012-08-18 09:40:36
如果使用多边形而不是多段线,该怎么办? draggableCursor did not work ..cursor仍然是指针 – 2013-05-08 22:07:24