我已经“解决”了我遇到的问题,但它仍然很奇怪,而且解决方案很hacky。在我的网站上,我的页面有时有几千像素大,例如http://rodelynx.nl/judas-priest-redeemer-of-souls-missen-we-kk-downing/ 我正在设置元素成为文档总高度的一部分。但是当文档真的很大时,计算中似乎会出现一些错误。
这是相关代码:
var bodyH = $(document).height(),
headerH = $('header').outerHeight(),
footerH = $('footer').outerHeight(),
zptH = 220,
linksBalkenNweH = bodyH - (headerH + footerH + zptH);
rechtsNweH = bodyH - (headerH + footerH);
if ((bodyH - (headerH + footerH)) > 1810) {
$('.linksBalkenBuiten').height(linksBalkenNweH);
$('.linksBalkenMiddenRechts').height(linksBalkenNweH);
$('.balkenRechts').find('img').height(rechtsNweH);
}
因此,如果一切顺利,相关元素的底部应该对齐。但事实并非如此; 适应元素的底部对齐但不与名为 tagNav 的元素对齐,这是以这种 hacky 方式解决的(也搞砸了设计)。
var zptPos = $('[title="Zoek per Tag"]').position().top,
tagNavPos = $('.tagNav').position().top;
if (zptPos != tagNavPos) {
$('.tagNav').css({'margin-top': '' + zptPos - tagNavPos + 'px'});
}
很可能 jQuery 没有错,但我的代码没有错,但我发现我的代码没有问题,这很简单。
// 编辑:好的,事实证明我的解决方案并没有解决我所有页面上的问题。这让我回到了最初的问题:jquery 怎么会如此公然地误测高度?看看这个屏幕的底部:http ://rodelynx.nl/video-fotos-en-verslag-van-demo-kampbewoners-osdorp-koekamp-2/根据jquery,'zoek per tag' 元素是 4767,而 tag nav 的垂直偏移量是 4757。但它们显然相距更远。