gpt4 book ai didi

javascript - 重新加载时将窗口带到相同的滚动位置

转载 作者:行者123 更新时间:2023-11-30 09:51:48 26 4
gpt4 key购买 nike

我正在使用以下代码在使用按钮或下拉菜单后将窗口带到相同的滚动位置。下面的代码给出了其中一个按钮 (#english) 的示例。

已编辑

f(localStorage.getItem("scroll"))  
{
window.scrollTo(0, parseInt(localStorage.getItem("scroll")));

}



$("#english").on("click",function()
{
localStorage.setItem("scroll", document.body.scrollTop);
});

window.localStorage.clear();

这在 Safari 中运行良好,但在 Firefox 中运行不佳。

似乎无法让它在 Firefox 中运行。任何人,请。

最佳答案

根据 this document.body.scrollTop 在 firefox 中已弃用,请尝试使用 document.documentElement.scrollTop 代替。您可能必须插入一些条件逻辑才能在 Safari 中使用 document.body.scrollTop 并在 firefox 中使用 document.documentElement.scrollTop

将您的点击处理程序更改为类似

$("#english").on("click",function(){
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
localStorage.setItem("scroll", scrollTop);
});

还有

如果 scroll 在 localStorage 中不存在则

localStorage.clear(); 
typeof localStorage.getItem("scroll"); // "object"

如果滚动存在则

localStorage.setItem("scroll", 1000);
typeof localStorage.getItem("scroll"); // "string"

如果滚动为0

localStorage.setItem("scroll", 0);
typeof localStorage.getItem("scroll"); // "string"

因此,除非“滚动”明确设置为未定义,typeof localStorage.getItem('scroll') === 'undefined'; 永远不会返回 true。

如果scroll不存在,则其值为null

localStorage.clear(); 
localStorage.getItem("scroll"); // null

null === true //false

所以

if(localStorage.getItem("scroll"))  
{
window.scrollTo(0, parseInt(localStorage.getItem("scroll")));

}

如果滚动存在(当然是一个数字)就会滚动,如果不存在则不会滚动。您是否正在寻找其他行为?

关于javascript - 重新加载时将窗口带到相同的滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36084881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com