在#link上停留在页面顶部

时间:2016-07-29 11:58:01

标签: javascript jquery twitter-bootstrap scroll settimeout

我试图链接到打开特定引导程序导航标签的页面,我可以通过将标签ID添加到#link来实现这一点,例如:

www.mysite.com/apagewithtabs#tab2

这很棒,除了页面向下滚动到显示#tab2的位置,我希望用户在加载时位于页面顶部。

我在js / jquery之后尝试了很多不同的变体,但绝对没有任何对我有用。

$(document).ready(function () {
  window.setTimeout(function () {
    $('html,body').scrollTop(0);
  }, 2000);
});

如果有人有任何想法我怎么能够实现这个id真的很感激呢!

非常感谢提前!

2 个答案:

答案 0 :(得分:1)

在尝试了许多不同的方法后,这种方法令人难以置信:

www.mysite.com/apagewithtabs#tab2#top

希望它有所帮助!

答案 1 :(得分:0)

我建议您通过查询附加您想要的信息,如下所示:

www.mysite.com/apagewithtabs?tab=tab2

然后使用此代码查看标签查询的值:

function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

var tab = getUrlVars()["tab"]; //tab is now the value of the tab query

部分代码由this answer.

提供

然后,您可以检查tab变量的值,并根据值来打开您想要的任何内容。例如:

switch (tab) {
    case 'tab1': /*...open tab 1 code...*/ break;
    case 'tab2': /*...open tab 2 code...*/ break;
}