0

转到我在问题末尾链接的页面,将您发送到主 stackoverflow 页面,但浏览器不会显示页面顶部,它将查找#h-recent-badges元素并开始在该元素位置查看页面.

是否有可能做到这一点,如果有人带着文章底部评论之一的链接来到我的网站,它会在页面顶部启动该人,然后向下滚动到#ID , 而不是仅仅出现在#ID?

当在页面上单击锚链接时,我可以使页面滚动到#ID,但我说的是当有人来自谷歌并带有指向元素#ID 的链接时。

https://stackoverflow.com/#h-recent-badges

4

3 回答 3

0

我在这里可能错了,但我相信这种浏览器行为取决于网站的加载速度......

例如,如果我的连接速度较慢,则将其加载到评论可用的位置需要时间 - 只有这样它才能移动到它们(而不是在它们实际出现在页面上之前)

您仍然可以尝试使用 jQuery 的scrollTo 插件来尝试在页面加载时手动滚动页面(可能使用 preventDefault?)

于 2011-02-01T08:26:03.720 回答
0

查看 jquery 查询字符串插件: http: //plugins.jquery.com/project/query-object

最新版本有哈希参数解析。

您要做的是在页面加载后获取哈希参数,然后执行 $.scrollTo($("#" + hashValue)) 之类的操作。

查看http://flesler.blogspot.com/2007/10/jqueryscrollto.html以获取 scrollTo 教程。

于 2011-02-01T08:42:06.397 回答
0
$(document).ready(function() { 
    if(document.URL.indexOf('#') > 0){
       var link = document.URL.split('#');
       scrollId('#'+link[1])
    }
});
$(window).on('hashchange', function(e){
   if(document.URL.indexOf('#') > 0){
       var link = document.URL.split('#');
       scrollId('#'+link[1])
    }
});

function scrollId(id)
{     
    setTimeout(function(){
        $('html, body').animate({scrollTop: $(id).offset().top - 0 }, 'slow');  
    },500);
}
于 2017-03-01T13:09:26.517 回答