javascript - jQuery Offset().left 不能正常工作

标签 javascript jquery offset

我有一个关于 jQuery offset() 函数的问题。我在我的网站上使用它在点击电子邮件图标后显示“给 friend 发电子邮件”窗口。

但是,窗口似乎粘在浏览器窗口的右侧,而不是图标的位置。您可以在 http://pec.solarismedia.net/calendarday.html 上看到它的实际效果

$(".emailFriend").hide();
    $(".emailIcon").on("click", function(e) {
        $(".emailFriend").css({
            "position": "absolute", 
            "left": $(this).offset().left, 
            "top": $(this).offset().top
        }).fadeIn(500);
        return false; 
    }); 

有一张图显示了意图和现实之间的差异。

最佳答案

这是因为#containerposition: relative;。因此,邮箱的绝对设置是​​相对于#container 的。您必须删除该属性或使用以下内容计算 left 的值:

$(this).offset().left - $('#container').offset().left

关于javascript - jQuery Offset().left 不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13449182/

相关文章:

c - 这会产生什么输出?还请解释一下

python - 用 Python 计算六角形棋子的有效走法

javascript - qTip 销毁后,如果调用,qTip 不会再次显示

javascript - 当用户需要时获取文本字段

javascript - 在 Nodejs 和 Express 中使用 JQuery 需要帮助

jquery - 如何使用JQuery获取html表格单元格文本值?

javascript - Leaflet setView by ajax (城市名称或邮政编码)

javascript - 将函数参数传递给 Object.assign

javascript - 如何同时创建具有随机颜色的容器?

mysql - MYSQL 表中行的顺序是否固定,以便查询始终按该顺序返回它们?