使用URL中的参数滚动到div(模仿锚行为)

时间:2016-01-29 17:07:40

标签: javascript jquery html

我正在使用一个使用锚点的jQuery选项卡插件,以便您可以定义默认情况下应该打开哪个选项卡。

但是如果界面低于折叠,它就不会滚动到视图中。我尝试在界面上方添加一个锚标签,但我无法突出显示相应的标签并滚动到视图中。

由于我无法使用两个锚点,我的想法是,如果我想提供滚动到视图的链接,我可以在URL中包含一个参数,如下所示: http://stage.ravencreative.com/scroll/Index.html?scrollto=Interface#parentHorizontalTab2 (其中"接口"可能是界面顶部的id名称锚的名称)

我用Google搜索并搜索了stackoverflow并且无法找到任何内容。是否有某种脚本可以让它工作?或者有更好的方法吗?

以下是一个有效的例子: http://stage.ravencreative.com/scroll/Index.html

这使第二个标签处于活动状态: http://stage.ravencreative.com/scroll/Index.html#parentHorizontalTab2 (#parentHorizo​​ntalTab2是默认情况下打开第二个选项卡的原因)

滚动到选项卡式界面: http://stage.ravencreative.com/scroll/Index.html#Interface (#Interface是界面开头的锚点)

但我无法同时 同时工作。有什么建议?有没有办法做这样的事情: http://stage.ravencreative.com/scroll/Index.html?scrollto=Interface#parentHorizontalTab2脚本在scrollto参数上选择并滚动到它?

类似的东西(因为我不熟悉代码构造,所以我使用英语):

if scrollto is found in the URL
then scroll to the anchor defined in the scrollto

1 个答案:

答案 0 :(得分:1)

你可以使用你所描述的各种#tabConditionSelector条件,然后在document.ready上你可以根据具体情况阅读它并滚动/选择和其他任何东西。

使用jQuery:

$( window ).load(function() {

    var hash = window.location.hash;

    if (hash == "#parentHorizontalTab2") {
      var top = document.getElementById("Interface").offsetTop; //Getting Y of target element
      window.scrollTo(0, top);

    } else if (hash == "#parentHorizontalTab3") {
      //select tab 3 etc
    }
});