jquery - 在Firefox中获取位置问题

时间:2010-12-14 10:54:47

标签: javascript jquery

我有以下代码,它会获取您悬停的元素的左侧和顶部位置。它在safari和IE中产生了正确的结果,但无法获得你在Firefox中悬停的img的位置 - 它返回0,0。任何人都可以看到为什么这可能是??

我认为将它设置为变量可能会有所作为,因为如果我将它直接放在函数中似乎可以工作。我需要将它设置为变量,因此它可以返回到其原始状态。

$.fn.hoverAnimationTwo = function () {
    return $(this).each(function () {

        var originalLeftTwo = parseInt($(this).css("left"));
        var originalTopTwo  = parseInt($(this).css("top"));

        return $(this).hover(function () {
            $(this).animate({
                width: "17px",
                height: "17px",
                left: originalLeftTwo - 5,
                top: originalTopTwo - 5
            }, 100);
        },function () {

            $(this).animate({
                width: "7px",
                height: "7px",
                left: originalLeftTwo,
                top: originalTopTwo
            }, 100);
        });
    });
}

$(".myImg").hoverAnimationTwo();

另一件非常奇怪的事情是,我可以将所有代码复制到jsfiddle中,它似乎有用。

编辑: 好的...所以事实证明这不是一个javascript问题。这是因为在页面的其他地方我给了一个元素一个以数字字符开头的类,这完全是我的坏事,我应该知道更好!

1 个答案:

答案 0 :(得分:2)

依赖CSS属性时,浏览器似乎有些不一致。您是否尝试过使用.position().offset()(以适用于您的需求为准)?

http://api.jquery.com/offset/http://api.jquery.com/position/