[英]Scroll not working on page redirection
我正在尝试使用评论系统创建一个图片上传网站。 注释部分显示在“ imagedisplay.php”文件中的图像下方。 现在,如果用户尚未登录,则该用户将被重定向到注册页面,然后在他注册之后,返回到存在注释部分的页面。
我想做的是,在用户登录并重定向回imagedisplay页面后,我希望页面向下滚动到注释框。
现在,通过以下方式,我在URL中传递一个URL,以及一个包含注释框ID的哈希值:
var commentformid="commentform"+imageId;
window.location.href="signup.php?lastpage="+encodeURIComponent("imagedisplay.php?id="+imageId+"#"+commentformid);//redirect to signup page
在这里, commentformid
是评论框的ID, lastpage
是页面的URL,有人尝试在其中发布评论,并且该用户在注册后将重定向到该URL。
这是我用来向下滚动到注释框的代码:
$(document).ready(function(){
//check for hash and if the hash exists, then scroll to the comment-box
var hash=window.location.hash;
if($(hash).length){
$('body').animate({ scrollTop: $(hash).offset().top }, 1500);
}
})
将用户正确地定向到注册页面,然后返回到显示有评论部分的图像显示页面,但问题是该页面没有滚动到评论框。相反,当页面加载时,它以注释框本身(即,页面在滚动后看起来正确,加载时恰好)。 简而言之,没有滚动效果。
希望我的问题清楚。 我真的是新来的,所以可以得到任何帮助。 提前致谢!
如果要阻止浏览器的自动滚动本机行为,可以使用以下代码段:
$(window).on("beforeunload", function() {
$(window).scrollTop(0);
});
请注意,并非所有浏览器都可以防弹。
通过使用哈希,Web浏览器可以立即转到页面位置(在文档准备好之前)。
您应该做的是分别传递哈希,然后使用jQuery转到该位置。
尝试传递网址
imagedisplay.php?id="+imageId+"hash="+commentformid;
然后用你的jQuery:
var hash=GetQueryStringParams('hash');
if($(hash).length){
$('body').animate({ scrollTop: $(window.location+hash).offset().top }, 1500);
}
function GetQueryStringParams(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
该功能取自此页
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.