在页面刷新时重置滚动位置,在现代浏览器上不起作用

时间:2018-08-28 20:13:17

标签: javascript jquery css browser scroll-position

我正在尝试在刷新时重置浏览器滚动位置,但显然这在现代浏览器中不起作用或无法实现,

代码:

$(window).on('beforeunload', function() {
$('html, body').scrollTop($('#scroll-to-div-id-anchor').offset().top); });

也许我处理不正确,还有另一种方法可以实现?

我尝试了此代码的所有变体和可能的选项,但是它不适用于Safari和Chrome(无论是在台式机上,还是在移动设备上)。

1 个答案:

答案 0 :(得分:0)

如果您希望页面在重新加载时移至某个元素,则预期的行为是在页面加载后将其移至该点。如果您试图在页面加载之前将其移动,则将不知道必须滚动到的页面;如果您试图在卸载页面时将其移动,则不能保证该点在重新加载后将被保存。

您可能可以在卸载时将滚动位置保存到localStorage并尝试在位置加载时加载位置,但是在这种情况下,我建议您仅在页面加载时移动。

$(document).ready(function() {
  $('html, body').scrollTop($('#scroll-to-div-id-anchor').offset().top);
});