javascript滚动到新页面上的位置

javascript滚动到新页面上的位置,javascript,jquery,Javascript,Jquery,我有一个简单的javascript,我正试图开始工作,但 我能够通过使用收集y轴 var tempScrollTop=$(窗口).scrollTop() 但我无法在刷新的url中滚动到相同的位置 因为没有错误显示,我无法找出是什么原因导致我的脚本无法工作 $(".refreshfix").click(function(e){ event.preventDefault(); var tempScrollTop = $(window).scrollTop(); var address

我有一个简单的javascript,我正试图开始工作,但

我能够通过使用收集y轴

var tempScrollTop=$(窗口).scrollTop()

但我无法在刷新的url中滚动到相同的位置

因为没有错误显示,我无法找出是什么原因导致我的脚本无法工作

$(".refreshfix").click(function(e){
  event.preventDefault();

  var tempScrollTop = $(window).scrollTop();
  var address = $(this).attr("sorttype");

  // window.location.replace(address);
  // window.location.href = address;
  // window.location = address;
  // document.location.reload(true)
  window.location.assign(address);

  $(window).scrollTop(tempScrollTop);
  // window.scrollTo(0, tempScrollTop);
  console.log(tempScrollTop)

});
我尝试了使用scrollTo和scrollTop的各种变体以及。我注释掉了一些我尝试过的代码,但它不起作用

我最好的猜测是,它移动到的这个新页面并没有丢失变量“tempScrollTop”,但我不知道如何传输变量以便在下一页中使用。我在stackoverflow上找到了一些参考资料,可以让我滚动到特定的位置,但没有一个提供任何关于在刷新页面上滚动到位置的提示。我是JavaScript新手,有人对此有什么想法吗


谢谢

当页面刷新时,由于
window.location.assign()
,所有变量都消失在空白中。将加载一个新页面

但您可以使用存储/检索值。这很快也很容易

// On load, get the value if exist
var scroll_y = parseInt( localStorage.getItem("scroll_y") );

// If there is a value, scroll!
if(!isNaN(scroll_y)){
  $(window).scrollTop(scroll_y);
  console.log(scroll_y);
}

// On click, store the value.
$(".refreshfix").click(function(e){
  event.preventDefault();

  var tempScrollTop = $(window).scrollTop();
  var address = $(this).attr("sorttype");

  localStorage.setItem("scroll_y",tempScrollTop);
  window.location.assign(address);
});

当页面刷新时,由于
window.location.assign()
,所有变量都将消失在虚无中。将加载一个新页面

但您可以使用存储/检索值。这很快也很容易

// On load, get the value if exist
var scroll_y = parseInt( localStorage.getItem("scroll_y") );

// If there is a value, scroll!
if(!isNaN(scroll_y)){
  $(window).scrollTop(scroll_y);
  console.log(scroll_y);
}

// On click, store the value.
$(".refreshfix").click(function(e){
  event.preventDefault();

  var tempScrollTop = $(window).scrollTop();
  var address = $(this).attr("sorttype");

  localStorage.setItem("scroll_y",tempScrollTop);
  window.location.assign(address);
});

如果是页面刷新,变量将被销毁。您可以通过查询字符串、服务器端调用或使用锚定标记滚动到刷新页面中的某个位置。页面刷新时变量丢失。您可以做的是向锚点添加一个name属性,如,并将该值传递给新的url:window.location.assign(address+“#something”);通过这种方式,浏览器将自动将页面滚动到该锚定的位置。如果是页面刷新,您的变量将被销毁。您可以通过查询字符串、服务器端调用或使用锚定标记滚动到刷新页面中的某个位置。页面刷新时变量丢失。您可以做的是向锚点添加一个name属性,如,并将该值传递给新的url:window.location.assign(address+“#something”);通过这种方式,浏览器将自动将页面滚动到该定位点的位置。谢谢,这样做的目的是将滚动带到新页面,这是成功的,因为我做了控制台日志以确认它已被移动,但窗口没有更改。我用下面的按钮向下滚动窗口,但不起作用。var scroll_y=localStorage.getItem(“scroll_y”)$(窗口).scrollTop(scroll_y);//滚动到(0,滚动y);你有没有办法用滚动键移动窗口?嗯。。。有可能你必须把它解析成一个数字。。。使用
parseFloat(滚动)
parseInt(滚动)
。试试看,如果有用的话我会更新。谢谢,但我试过了,不幸的是没有。我使用var scroll\u y=parseFloat(scroll\u y)来更改它。我想知道我是否需要额外的库来做到这一点:(我更新了…因为您
parseInt()
…必须使用
.isNaN()
;)更改条件)感谢您的回答我终于得到了它,它以前不起作用,因为我使用的脚本在jquery脚本“$(document).ready(function(){”我终于发现它被删除了,现在它工作得很好。我还添加了localStorage.removietem(“scroll_y”);当启动滚动以从本地存储中删除项目,从而重置滚动变量时。谢谢,这样做的目的是将滚动带到新页面,这是成功的,因为我做了控制台日志以确认它已被移动,但窗口没有更改。我使用下面的命令向下滚动窗口但是它们不起作用。var scroll\u y=localStorage.getItem(“scroll\u”)$(window)。scrollTop(scroll\u y);//window.scrollTo(0,scroll\u y);你有没有办法用scroll\u y移动窗口?嗯……你可能必须用
parseFloat(scroll\u y)
parseInt(scroll\y)将它解析成一个数字
。试试看,如果有用我会更新。谢谢,但我试过了,不幸的是没有。我用var scroll\u y=parseFloat(scroll\u y)来更改它。我想知道我是否需要额外的库来做这件事。:(我更新了…因为你
parseInt()
…条件必须使用
.isNaN()
;)谢谢你的回答,我终于得到了它,因为我使用的脚本在jquery脚本“$(document).ready(function(){”中,所以它以前不起作用。我最终发现它被删除了,现在它工作得很好。我还添加了localStorage.removietem(“scroll_y”);当已激活滚动以从本地存储器中删除项目,从而重置滚动变量时。