我正在使用 jquery函数来滚动到来自索引链接的div ;当我执行动作(点击链接转到辅助页面)并执行滚动时,它可以正常工作,但没有正确的'scrollTop'测量。
我意识到它正常工作,直到我重新加载页面。我不知道我是否使用了正确的功能。
var locationString = window.location.hash;
var headerHeight = -70;
$(document).ready(function(){
var divLoc = $(locationString).offset();
console.log(locationString, divLoc.top , divLoc.top + headerHeight);
$('html, body').animate({scrollTop: divLoc.top + headerHeight}, "slow");
});
答案 0 :(得分:0)
最常见的原因是对与页面加载相关的两个事件的理解不足:--language_in ECMASCRIPT_2015
(DOM的所有元素都可以查询/修改或其他)和$(document).ready()
(所有图像)并且相关的css已准备就绪,页面将被呈现并将由浏览器完全显示。
如果您使用$(window).load()
来应用需要加载所有页面的操作以正确显示所有大小调整,则会失败,因为图像尚未加载,因此垂直偏移(如您的情况)可能无法正确计算。
因此您需要使用$(document).ready()
,因此当您滚动到该元素时,您将确保完全呈现该页面,所有元素将按原样放置。
希望它有所帮助。