javascript滚动到新页面上的位置

时间:2018-01-12 05:39:42

标签: javascript jquery

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

我能够使用

收集y轴

var tempScrollTop = $(window).scrollTop();

但我无法滚动到刷新网址中的相同位置。

因为没有错误显示我无法弄清楚导致我的脚本无法工作的原因。

$(".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的新手,有没有人对此有任何想法?

谢谢

1 个答案:

答案 0 :(得分:2)

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

但您可以使用localStorage()来存储/检索值。这很快捷。

// 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);
});