我有很长的项目列表,当我点击每个项目并返回主列表时,滚动位置丢失了。
如何使用jQuery返回相同的滚动位置?有没有简单的方法呢?
$(document).ready(function() {
$('.update-button').click(function (){
sessionStorage.scrollPos = $(window).scrollTop();
console.log(sessionStorage.scrollPos);
});
});
var init = function () {
//get scroll position in session storage
$(window).scrollTop(sessionStorage.scrollPos || 0)
};
window.onload = init;
以上是我的代码的样子。我试图记录位置,sessionStorage.scrollPos为0.我很确定我将页面滚动到某个地方。
非常感谢帮助。
答案 0 :(得分:6)
以这种方式尝试:
$(window).scroll(function () {
//set scroll position in session storage
sessionStorage.scrollPos = $(window).scrollTop();
});
var init = function () {
//get scroll position in session storage
$(window).scrollTop(sessionStorage.scrollPos || 0)
};
window.onload = init;
您需要在sessionStorage(或任何存储)中存储滚动位置的值,并在页面加载时再次使用它。
答案 1 :(得分:2)
只要修改@Rayon,如果它没有工作,请回答。
$("body").on("scroll", function () {
//set scroll position in session storage
sessionStorage.scrollPos = $(window).scrollTop();
});
var init = function () {
//get scroll position in session storage
$("body").scrollTop(sessionStorage.scrollPos || 0)
};
window.onload = init;
您可以将$("body")
替换为HTML中最顶层的元素。我正在使用framework7移动应用程序,我需要使用$(".page-content")
。它对我有用。
答案 2 :(得分:0)
没有简单的解决方案,但在重定向发生的点击事件中,使用
获取当前滚动位置var scroll = $(window).scrollTop();
然后将scroll变量的值存储到localstorage中(如果localstorage不可用,则为cookie)。
然后在页面加载时从本地存储中查找滚动位置(如果可用),如果可以,则移动到该位置。
答案 3 :(得分:0)
试试这个。
<button onclick="goBack()">Go Back</button>
function goBack() {
window.history.go(-1);
}
答案 4 :(得分:0)
此项适用于readmore文章或隐藏文章,用于获得点击readmore的当前位置高度。
#note:您需要切换按钮Readmore并隐藏
let readhide = document.querySelectorAll('.read-hide');
let readmore = document.querySelectorAll('.read-more');
readmore.forEach((more,key) => {
let height, moreHeight;
window.addEventListener('scroll', function(event){
height = Math.floor(event.target.scrollingElement.scrollTop);
});
more.addEventListener('click', function(){
moreHeight = height;
});
readhide[key].addEventListener('click', function(){
window.scrollTo(0, moreHeight);
});
});
答案 5 :(得分:0)
<a href="javascript:window.history.back()">Return Text </a>