好的,我的目标是首先计算页面顶部与查看器所在页面部分之间的距离,因此基本上是查看器无法看到的页面顶部的部分,以像素为单位的距离这个区域(只有垂直)。
这样当他们进入另一页时:
“function codeAddress(){$(”html,body“)。animate({scrollTop:” scrollTop “});}”
,将它们向下滚动它们在前一个html页面上向下滚动的像素数量,并且该距离将存储在“scrollTop”变量中。
但是由于它无法正常工作,我想测试“scrollTop”变量给出的值,并且alert(scrollTop)给我的值为'0'。但是当我使用alert(...),然后......我给完全'='“scrollTop = ...”后面的内容我得到正确的值。事实证明,变量的值变为0,而'='后面的所有值的值不等于0.
我无法想象我没有看到什么,任何人有任何线索?
这是一个带有我整个页面的JSFiddle,中间有一个按钮,在我的页面中它为第二个警报提供了'0'值,而在Fiddle中它给'undefined'仍然很奇怪..
https://jsfiddle.net/56sb4gty/
MAX_BONES
答案 0 :(得分:0)
正如adeneo所说,你试图滚动到一个名为“scrollTop”的字符串,它没有任何意义,它应该是scrollTop: SOME_NUMBER
。
我假设您保存去抖动滚动事件的最后位置,或导航点击并将其保存到session / localStorage。
然后在新页面上滚动到该位置。像...这样的东西。
document.addEventListener('DOMContentLoaded', function() {
try {
// On load see if there is a scroll pos and go there.
var lastYPos = +localStorage.getItem('scrollYPos');
if (lastYPos) {
console.log('Setting scroll pos to:', lastYPos);
window.scrollTo(0, lastYPos);
}
// On navigation click or debounced resize event..
someResizeOrClickEvent(() => localStorage.setItem('scrollYPos', window.scrollY));
} catch (error) {
// This will happen in Safari private browsing when accessing localStorage
console.error(error);
}
});