2010-07-21 74 views
0

我有一個使用mousemove jquery函數的工具提示腳本。一切工作正常期待IE瀏覽器。 看看這裏:http://omarabid.com/deploy/ 矩形是「li」元素。當您移動鼠標時,會出現一個標籤。在IE中,標籤確實出現,但只有當您將鼠標移動到空白區域時(右側)。當你移動圖像時,沒有任何事情會讓我發瘋。IE mousemove bug

好像當指針進入圖像區域,標籤與淡出()這就像如果鼠標退出區域(這是不正確的!)

那麼問題出在哪裏消失?這是一個IE錯誤?

回答

2

實際的問題在於標籤類上的background-color:transparent設置了背景顏色,而您會看到它的工作原理)。

使用1x1像素的透明背景圖像,而不是和你應該罰款..


解釋

刪除background-color: transparent,並在它的地方放一個 background: url(/somepath/transparent.gif) top left repeat;

transparent.gif應具有1px x 1px的尺寸並且是透明的。 (這裏是一個下載鏈接:http://www.imgag.com/product/full/ap/3021018/transparent.gif

+0

奇妙的回答! :)我永遠不會找出原因。 順便說一句,我不明白你的解決方案:( – 2010-07-21 14:08:09

+0

@Omar,更新的答案與解釋和鏈接到一個圖像.. – 2010-07-21 14:23:37

+0

謝謝,你搖滾:) – 2010-07-21 14:25:12

1

一旦你的DOM加載這個有你的頁面:

<div id="photo1" class="taggedimg"> 
    <img id="atag" src="img/photo1.jpg"> 
    <li style="top: 0px; left: 0px; height: 45px; width: 77px; margin-top: 15px; margin-left: 0px; " class="tag mytag"></li> 
    <li style="top: 55px; left: 45px; height: 340px; width: 960px; margin-top: 15px; margin-left: 0px; " class="tag mytag"></li> 
</div> 

似乎weard我.​​..

儘量避免使用默認的行爲:

li.mouseenter(function(kmouse) { 
    kmouse.preventDefault(); 
    my_tooltip.css({ 
     opacity : 0.8, 
     display : "none" 
    }).fadeIn(400); 
}).mousemove(function(kmouse){ 
    kmouse.preventDefault(); 
    my_tooltip.css({ 
     left : kmouse.pageX + 15, 
     top : kmouse.pageY + 15 
    }); 
}).mouseleave(function(kmouse) { 
    kmouse.preventDefault(); 
    my_tooltip.fadeOut(400); 
}); 
在imgtag

/core.js

0

我遇到了類似的問題。嘗試使用mouseentermouseleave而不是mouseover和mouseout。