首先可以先設定一個CSS的Class,如下:
.contextMenu {
position: absolute;
min-width: 100px;
z-index: 1000; /* 必要 */
background: #fff;
border-top: solid 1px #CCC;
border-left: solid 1px #CCC;
border-bottom: solid 1px #676767;
border-right: solid 1px #676767;
padding: 0px;
margin: 0px;
display:none; /* 預設為不顯示 */
font-size:smaller;
}
position: absolute;
min-width: 100px;
z-index: 1000; /* 必要 */
background: #fff;
border-top: solid 1px #CCC;
border-left: solid 1px #CCC;
border-bottom: solid 1px #676767;
border-right: solid 1px #676767;
padding: 0px;
margin: 0px;
display:none; /* 預設為不顯示 */
font-size:smaller;
}
再來可以寫一個DIV,就是要在滑鼠右鍵按下( Right Click)時顯示的選單,把class設剛剛寫好的CSS Class:
<div id="rightMenu" class="contextMenu">
<a>設為起點</a>
<a>設為終點</a>
</div>
<a>設為起點</a>
<a>設為終點</a>
</div>
<script type="text/javascript" src="jquery-1.6.1.min.js"></script>
<script language='javascript'>
var contextMenu = $("#rightMenu"); //宣告物件
$(map.getDiv()).append(contextMenu);
//加入事件
google.maps.event.addListener(map, "rightclick", function(e) {
//先隱藏div
contextMenu.hide();
var mapDiv = $(map.getDiv());
var x = e.pixel.x;
var y = e.pixel.y;
//當選單太靠近邊界時,調整選單位置
if (x > mapDiv.width() - contextMenu.width()) {
x -= contextMenu.width();
}
if (y > mapDiv.height() - contextMenu.height()) {
y -= contextMenu.height();
}
//設定座標,並加入動畫
contextMenu.css({ top: y, left: x }).fadeIn(100);
});
//當下列事件觸發時,隱藏選單
$.each('click dragstart zoom_changed maptypeid_changed'.split(' '),
function(i, name) {
google.maps.event.addListener(map, name, function() {
contextMenu.hide()
});
});
</script>
var contextMenu = $("#rightMenu"); //宣告物件
$(map.getDiv()).append(contextMenu);
//加入事件
google.maps.event.addListener(map, "rightclick", function(e) {
//先隱藏div
contextMenu.hide();
var mapDiv = $(map.getDiv());
var x = e.pixel.x;
var y = e.pixel.y;
//當選單太靠近邊界時,調整選單位置
if (x > mapDiv.width() - contextMenu.width()) {
x -= contextMenu.width();
}
if (y > mapDiv.height() - contextMenu.height()) {
y -= contextMenu.height();
}
//設定座標,並加入動畫
contextMenu.css({ top: y, left: x }).fadeIn(100);
});
//當下列事件觸發時,隱藏選單
$.each('click dragstart zoom_changed maptypeid_changed'.split(' '),
function(i, name) {
google.maps.event.addListener(map, name, function() {
contextMenu.hide()
});
});
</script>
http://www.pinsoftstudios.com/tips/google-maps-api-v3-right-click-context-menu