Javascript - 跳转到锚点功能

时间:2012-01-16 17:13:55

标签: javascript anchor

我使用此脚本来检查锚是否在URL中。如果找到,则会调用 showscroll 函数。 唯一不起作用的是跳转到被叫锚点。 我是JS的新手 - 这个函数出了什么问题?

在HTML页面中:

   <script type="text/javascript">
    <!--
    function checkurl(){
    if (window.location.href.match(/\#more/))
    {
    showscroll('more');
    }
    if (window.location.href.match(/\#tab2/))
    {
    showscroll('tab2');
    }

    }
    //-->
    </script>

    </head>                   

    <body onload="checkurl()"> 

.JS

function showscroll(id){
    if (document.getElementById) {
    var divid = document.getElementById(id);
    divid.style.display = divid.style.display='block';
    // NOT WORKING:
 window.location.href = "#"+id;
//
    return false;
} }

编辑:我无法使用“滚动到视图”。

1 个答案:

答案 0 :(得分:5)

而不是

window.location.href.match(/\#more/)

你可以做到

window.location.hash == '#more'

而不是分配给片段,您可以使用https://developer.mozilla.org/en/DOM/element.scrollIntoView

中所述的scrollIntoView方法
  

<强>摘要

     

scrollIntoView()方法将元素滚动到视图中。

     

<强>语法

     

element.scrollIntoView(alignWithTop);

     

alignWithTop可选

     
    

如果为true,则滚动元素与滚动区域的顶部对齐。如果为false,则与底部对齐     注意:默认情况下,滚动元素以与滚动区域的顶部对齐。