Javascript - Перейти к функции привязки - PullRequest
2 голосов
/ 16 января 2012

Я использую этот скрипт, чтобы проверить, есть ли привязка в 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 Ответ

5 голосов
/ 16 января 2012

Вместо

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

вы можете просто сделать

window.location.hash == '#more'

и вместо присвоения фрагменту вы можете использовать метод scrollIntoView какописан в https://developer.mozilla.org/en/DOM/element.scrollIntoView

Сводка

Метод scrollIntoView() прокручивает элемент в поле зрения.

Синтаксис

element.scrollIntoView(alignWithTop);

alignWithTop Необязательно

Если установлено значение true, прокручиваемый элемент выравнивается по верхней части области прокрутки.Если false, он выравнивается по низу.
Примечание. По умолчанию элемент прокручивается для выравнивания по верху области прокрутки.

...