重载时jQuery position()/ offset()值错误(chrome)

时间:2016-04-13 12:46:06

标签: javascript jquery css google-chrome

我已经在wordpress中的悬停/当前菜单项上创建了一个带有背景移动div的菜单。

JsFiddle:https://jsfiddle.net/wwv9c0v7/

问题:除非我重新加载页面(F5),否则一切正常。点击带有新页面的链接也很有效。我不知道为什么,但是position()。left会返回一个错误的值。它向左移动了太远。

$magicLine.css("left", $(".current-menu-item").position().left)

感谢您的帮助。

编辑:Live preview

~Neme

1 个答案:

答案 0 :(得分:1)

我已经设法查看了您的问题,但正如下面的文档所述,浏览器不会公开他们的API以检测缩放情况,当您刷新页面的大小不同时,您可以观察到加载页面时的行为,它以不同的大小开始(我假设页面的大小更大,因为滚动条在页面后加载,因此这会使页面改变它的大小)。

文档:https://api.jquery.com/position/

尝试在jquery方法中执行此操作:$(document).ready(...)通过这样做,确保在页面加载后该函数将始终执行。