2011-10-13 18 views
0

壞我有一個簡單圖像映射:AREA標籤的offsetLeft和的offsetTop值工作在IE,但會出現在Chrome和Firefox

<img alt="Image" src="./TestImage.jpg" usemap="#myMap" /> 
<map name="myMap" id="myMap"> 
    <area id="Fox" alt="Fox" shape="rect" coords="344,0,530,170" /> 
    <area id="Grass" alt="Grass" shape="rect" coords="80,160,250,280" /> 
</map> 

使用jQuery附上鼠標懸停事件處理程序:

$(window).load(function() { 
$('div map area').mouseover(function (e) { 
    ... 
} 

我檢查元素的偏移:

var offset = $(this).offset(); 

當我將鼠標懸停在福克斯區,我看到以下內容:

  • IE返回正確的值:(344,0)
  • 鉻告訴我的偏移(0,0)
  • 火狐告訴我,偏移量爲(8,76,8333 ...)

爲什麼Chrome和Firefox返回不正確的值,有什麼我可以做的解決這個問題?

回答

1

你可以得到一個「COORDS」直接屬性:

var coords = $(this).attr('coords').split(','); 
+0

謝謝你 - 這已被我發瘋! –

+0

我找了一個答案,爲什麼瀏覽器差異如此之大,但我還沒有找到任何東西。 – Pointy

+0

對不起 - 我明顯沒有早點思考過。是的,我*可以*拆分coords,但如果該區域是poly,那麼我必須遍歷每個點並構建邊界框。這是我期望偏移左,頂部,寬度和高度應該給我。我已經提出了Chrome和Firefox的錯誤,因爲它們都錯了:( –

相關問題