ready(function()无法正常工作

时间:2018-05-15 01:00:46

标签: javascript jquery html html5

我正在使用 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");
 });

1 个答案:

答案 0 :(得分:0)

最常见的原因是对与页面加载相关的两个事件的理解不足:--language_in ECMASCRIPT_2015(DOM的所有元素都可以查询/修改或其他)和$(document).ready()(所有图像)并且相关的css已准备就绪,页面将被呈现并将由浏览器完全显示。

如果您使用$(window).load()来应用需要加载所有页面的操作以正确显示所有大小调整,则会失败,因为图像尚未加载,因此垂直偏移(如您的情况)可能无法正确计算。

因此您需要使用$(document).ready(),因此当您滚动到该元素时,您将确保完全呈现该页面,所有元素将按原样放置。

希望它有所帮助。