[英]How to Remember Scroll Position of a NAV (fixed/overflow-y:scroll)
我有一个资产净值position: fixed; top:115px; width:210px; margin-bottom: 0px; bottom: 0px; overflow: hidden; overflow-y:scroll;
position: fixed; top:115px; width:210px; margin-bottom: 0px; bottom: 0px; overflow: hidden; overflow-y:scroll;
指定。
<nav itemscope="" itemtype="http://schema.org/SiteNavigationElement" class="content-left">
此NAV
在我的网站上有一个主题列表(链接)。
我想让它在刷新页面或点击页面中的链接后记住NAV
的垂直滚动位置。 我可以使用jquery。 我该怎么做? 谢谢。
您需要在本地存储数据(使用本地存储 / cookie),然后重新滚动到该位置。
一些示例代码(根据您的使用进行自定义,这在StackOverflow中不起作用,因为对代码段禁用了本地存储):
$(document).ready(function(){ // Load any previous scroll position var previousScroll = localStorage.getItem('scrollPos'); if(previousScroll !== null){ $(window).scrollTop(previousScroll) } // Save scroll position when a user stops scrolling $(window).scroll(function() { clearTimeout($.data(this, 'scrollTimer')); $.data(this, 'scrollTimer', setTimeout(function() { localStorage.setItem('scrollPos', $(window).scrollTop()); }, 250)); }); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div></div>
获取滚动位置:
var scrollPos = nav.scrollTop;
更改页面时存储信息:
如果您确实在更改页面,则需要将此信息存储在会话变量或cookie中。 为此,您需要在每次更改位置时更新cookie(或使用AJAX请求更改会话变量)。
您也可以“假装”更改页面,就像Gmail一样。 为此,您需要使用javascript更新浏览器栏并使用AJAX更改页面内容。
加载滚动位置:
同样,您可以使用element.scrollTop
,但是分配它:
nav.scrollTop = storedScrollPosition;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.