繁体   English   中英

滚动不适用于页面重定向

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM