Javascript 关闭弹出窗口后将页面返回到原来的scrollTop位置

Javascript 关闭弹出窗口后将页面返回到原来的scrollTop位置,javascript,jquery,scrolltop,Javascript,Jquery,Scrolltop,我有一个按钮,固定页面内容的位置,然后在表单从右侧滑入时向左推 除了一件事之外,这一切都很好。当用户稍微向下滚动页面并单击按钮时,它成功地修复了位置。但是,当他们关闭此表单时,页面不会返回到原始位置。。。它会将用户带回页面顶部。我在下面发布了jquery,这可能有助于更好地解释这个问题 这里还有一个JSFIDLE示例 var页面内容; var-currentscrollpos; $(文档).ready(函数(){ $(“测试按钮”).live('单击',函数()){ var currentsc

我有一个按钮,固定页面内容的位置,然后在表单从右侧滑入时向左推

除了一件事之外,这一切都很好。当用户稍微向下滚动页面并单击按钮时,它成功地修复了位置。但是,当他们关闭此表单时,页面不会返回到原始位置。。。它会将用户带回页面顶部。我在下面发布了jquery,这可能有助于更好地解释这个问题

这里还有一个JSFIDLE示例

var页面内容;
var-currentscrollpos;
$(文档).ready(函数(){
$(“测试按钮”).live('单击',函数()){
var currentscrollpos=$(窗口).scrollTop();
var pageContents=$(“body”).html();
$(“body”).html(“”);
$(“+pageContents+”).prependTo(“正文”);
$(“.pageContainer”).css({'position':'fixed','top':currentscrollpos*-1});
$(“html,body”).animate({scrollTop:0},0);
$(“”)。附件(“正文”);
$(“.blackout”).css(“不透明度”,0.8).fadeIn('slow',function()){
美元(“收盘”)。附于(“正文”);
$(“.popupanel”).animate({
右:“0px”
},500,函数(){
$(“.popupanel”).css(“位置”、“绝对”)
});
$(“.pageContainer”).animate({
左:“-200px”
},500,函数(){
});
$(“测试按钮”).append(currentscrollpos)
});
返回false;
});
$('.closeme').live('click',function(){
var pageContents=$(“.pageContainer”).html();
$(“.popupanel”).css(“位置”,“固定”).animate({
右:“-200px”
},500,函数(){
});
$(“.pageContainer”).animate({
左:“0px”
},500,函数(){
$(“.blackout”).fadeOut('slow',function(){
$(“.blackout”).remove();
$(“body”).html(页面内容);
$(“html,body”).animate({scrollTop:currentscrollpos},0);
});
});
});
});
您使用的是局部变量,因为您使用的是
var

var currentscrollpos = $(window).scrollTop();
相反,请放下
var
,以便可以在
中访问它。closeme
单击函数。您一开始就已经使用了
var
。因此:

currentscrollpos = $(window).scrollTop();
这样,就可以设置最开始的变量,这两个函数都可以访问。目前,您正在
a#testbutton
click函数中声明另一个变量,而原始变量保持不变


.

您可以使用此代码返回到从浏览器关闭的页面位置


无功电流位置;
$(文档).ready(函数(){
$(窗口)。滚动(函数(){
var scrollPos=$(document.scrollTop();
console.log(“scrollPos:+scrollPos”);
setItem(“key”,scrollPos);
});
currentposition=localStorage.getItem(“键”);
滚动至(0,当前位置);
警报(“当前位置:+currentposition”);
});
如果$(窗口)不起作用,可以尝试使用$(document.body)或$(“body”)
currentscrollpos = $(window).scrollTop();