IE mousemove bug

时间:2010-07-21 13:49:24

标签: jquery internet-explorer

我有一个使用mousemove jquery函数的工具提示脚本。 IE的一切都运行良好。 看看这里:http://omarabid.com/deploy/ 矩形是“li”元素。当您将鼠标移动时,会出现一个标记。在IE中,标签确实出现,但仅当您将鼠标移动到空白区域(右侧)时。当您移动图像时,没有任何事情让我发疯。

似乎当指针进入图像区域时,标签会随着fadeout()消失,就像鼠标退出该区域一样(这不是真的!!)

问题出在哪里?这是IE漏洞吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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>

对我来说似乎很奇怪......

尝试使用以下方法阻止默认行为:

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);
});

in img tag / core.js

答案 2 :(得分:0)

我遇到了类似的问题。尝试使用 mouseenter mouseleave 而不是鼠标悬停和mouseout。