我有一个网页,是充满了巨大的长度div的,所以每当我刷新我的页面或手动文档加载通过行动,我需要滚动我的窗口或文档到相同或以前的位置,但我希望这是由浏览器自动完成。我在网络上搜索了一下,没有找到任何帮助,但我知道这个解决方案是存在的,没有任何其他的lib包含。我有一个页面的高度超过窗口高度与一些div和选择框每当我选择任何东西在页面中间,它刷新我的页面,并发送负载新的文件这里我想移动到我以前选择的选择框放置div,这样我就可以避免手动滚动每个选择
uqjltbpv1#
据我所知,页面的刷新不是自动的,完全取决于用户。所以,我想到的一个解决方案是使用浏览器内置的local storage,并定期使用pos变量更新该存储。示例代码片段(直接取自文档-纯JavaScript):
pos
// Store localStorage.setItem("lastname", "Smith"); // Retrieve document.getElementById("result").innerHTML = localStorage.getItem("lastname");
字符串这样你就可以检索最后保存的滚动位置并做必要的事情。Jquery也有一个围绕这个HTML5网络存储构建的local storage API。我已经发布了文档,它应该能让你朝着正确的方向开始。
vc9ivgsu2#
首先,我将位置添加到localStorage
localStorage.setItem("scrollTop", document.body.scrollTop);
字符串然后从它获得相同的位置onload(reload)
window.onload = function() { var scroll = parseInt(localStorage.getItem("scrollTop")); //parseInt(localStorage.scrollTop); if (!isNaN(scroll)) document.body.scrollTop = scroll;
型}
6fe3ivhb3#
在JavaScript中,我们可以使用window.scollY & window.scollX对象来获取滚动数据。
window.scollY
window.scollX
scrollFromTop = document.body.scrollY;
字符串
我们需要将位置添加到一个localStorage变量中,这样当用户进入不同的页面时就不会丢失数据
localStorage.setItem("scrollY", window.scrollY);
型
localStorage
要从localStorage获取数据,我们必须使用localStorage.getItem()方法,如下所示。
localStorage.getItem()
var data = localStorage.getItem(nameOfItem);
加载时,获取我们之前设置的原始位置,然后使用window.scroll向下滚动到它
window.scroll
window.onload = function() { var scrollY = parseInt(localStorage.getItem("scrollY")); if (!isNaN(scroll)) { window.scroll(0, scrollY); } }
下面是这个问题的完整JavaScript代码:
window.onunload = function() { localStorage.setItem("scrollY", window.scrollY); } window.onload = function() { var scrollY = parseInt(localStorage.getItem("scrollY")); if (!isNaN(scroll)) { window.scroll(0, scrollY); } }
localStoragescrollX的scrollY的
omqzjyyz4#
我就是这样解决这个问题的
function scrollWin() { var scrolledTo = localStorage.getItem('scrolledTo'); $('html, body').animate({ scrollTop: scrolledTo }, 50); } $(document).ready(function () { scrollWin(); }); $(window).scroll(function (event) { var scrolledTo = $(window).scrollTop(); localStorage.setItem('scrolledTo', scrolledTo); });
4条答案
按热度按时间uqjltbpv1#
据我所知,页面的刷新不是自动的,完全取决于用户。所以,我想到的一个解决方案是使用浏览器内置的local storage,并定期使用
pos
变量更新该存储。示例代码片段(直接取自文档-纯JavaScript):
字符串
这样你就可以检索最后保存的滚动位置并做必要的事情。Jquery也有一个围绕这个HTML5网络存储构建的local storage API。我已经发布了文档,它应该能让你朝着正确的方向开始。
vc9ivgsu2#
首先,我将位置添加到localStorage
字符串
然后从它获得相同的位置onload(reload)
型
}
6fe3ivhb3#
获取滚动位置
在JavaScript中,我们可以使用
window.scollY
&window.scollX
对象来获取滚动数据。字符串
不忘立场
我们需要将位置添加到一个localStorage变量中,这样当用户进入不同的页面时就不会丢失数据
型
从
localStorage
获取数据要从
localStorage
获取数据,我们必须使用localStorage.getItem()
方法,如下所示。型
加载时设置值
加载时,获取我们之前设置的原始位置,然后使用
window.scroll
向下滚动到它型
完整代码
下面是这个问题的完整JavaScript代码:
型
文档链接
localStorage
scrollX的
scrollY的
omqzjyyz4#
我就是这样解决这个问题的
字符串