【发布时间】:2018-08-24 14:52:08
【问题描述】:
我有一个导航栏,它在滚动时会粘在顶部。我有一个代码可以在滚动后获取导航栏的位置。在 Chrome 中,我得到 position.x = 0,并且 position.y = 0 正如预期的那样,因为导航栏就在网站的顶部。但是....如果我在 Firefox 中运行相同的代码,我会得到 position.x = 0 和 position.y = -775 尽管导航栏粘在顶部。有人知道吗?
代码如下:
function getPosition(el) {
var xPos = 0;
var yPos = 0;
while (el) {
if (el.tagName == "BODY") {
var xScroll = el.scrollLeft || document.documentElement.scrollLeft;
var yScroll = el.scrollTop || document.documentElement.scrollTop;
xPos += (el.offsetLeft - xScroll + el.clientLeft);
yPos += (el.offsetTop - yScroll + el.clientTop);
} else {
xPos += (el.offsetLeft - el.scrollLeft + el.clientLeft);
yPos += (el.offsetTop - el.scrollTop + el.clientTop);
}
el = el.offsetParent;
}
return {
x: xPos,
y: yPos
};
}
window.addEventListener("scroll", updatePosition, false);
window.addEventListener("resize", updatePosition, false);
function updatePosition() {
position = getPosition(myElement);
}
var myElement = document.querySelector("#site-navigation");
var position = getPosition(myElement);
alert("The image is located at: " + position.x + ", " + position.y);
【问题讨论】:
-
能否提供
#site-navigation的CSS和/或任何其他相关的CSS
标签: javascript jquery google-chrome firefox position