JavaScript не работает при нажатии «examplelink.php # anchor» - PullRequest
0 голосов
/ 23 ноября 2010

Я действительно, действительно надеюсь, что кто-нибудь поможет мне в этом! Спасибо ооочень большое, если вы делаете! :)

У меня есть две страницы ... одна с именем index.php и одна с именем portfolio.php . Мой заголовок (один и тот же на каждой странице) содержит несколько якорей, переопределяющих их на страницу portfolio.php ( portfolio.php # blogg ).

У меня также есть код JavaScript для плавной прокрутки (это должно работать на всех страницах), но он не работает с ссылками привязки заголовка, когда я нахожусь на другой странице, а затем портфолио. PHP .

Что я могу сделать, чтобы заставить javascript функционировать, когда я, например, нажимаю " portfolio.php # blogg " на странице index.php ?

Вот мой JavaScript:

window.addEvent('domready',function() { new SmoothScroll({ duration: 800 }); });

Ответы [ 2 ]

0 голосов
/ 23 ноября 2010

Вы не даете нам много информации здесь, но я предполагаю, что SmoothScroll это от MooTools?Взгляните на это: http://davidwalsh.name/mootools-onload-smoothscroll

window.addEvent(‘domready’, function() {
    new SmoothScroll({ duration:700 }, window);
    var el = window.location.hash.substring(1); // the hash
    if(el) {
        window.scrollTo(0,0);
        var scroll = new Fx.Scroll(
            window,
            { wait: false, duration: 700, transition: Fx.Transitions.Quad.easeInOut }
        );
        scroll.toElement(el);
    }
});
0 голосов
/ 23 ноября 2010

Хммм .... Проблема, если я правильно понимаю, заключается в том, что браузер переходит вниз к позиции привязки фрагмента при переходе с другой страницы до загрузки объекта SmoothScroll. Первое, что приходит на ум, - это решение, использующее сеансы или файлы cookie.

Когда пользователь находится на странице индекса и щелкает ссылку на портфель, который следует прокрутить до якоря #blogg: вместо добавления фрагмента хэштега в URL-адрес ссылки сохраните файл cookie, указывающий, что страница должна быть прокрутка и ссылка непосредственно на верх страницы портфолио.

Затем в событии domready на странице портфолио загрузите объект SmoothScroll, проверьте наличие cookie, прокрутите до якоря #blogg, если он существует, и удалите cookie.

...