javascript не работает при нажатии examplelink.php#anchor

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

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

У меня также есть код javascript для плавной прокрутки (это должно работать на всех страницах), но он не работает с якорными ссылками заголовков, когда я нахожусь на другой странице, а затем portfolio.php< /сильный>.

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

Вот мой javascript:

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

person Inger-Marie    schedule 23.11.2010    source источник


Ответы (2)


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

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

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

person Stephen    schedule 23.11.2010
comment
Да, вы прекрасно поняли мой вопрос! :) Но мне нужен более конкретный ответ, если это возможно. Я не уверен, как это сделать! Спасибо! :) - person Inger-Marie; 23.11.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);
    }
});
person Zecc    schedule 23.11.2010
comment
да, это тот, что от moo tools! :) davidwalsh.name/smooth-scroll Похоже, ваш код работает! :O Но не совсем. Страница загружается, но не прокручивается до якоря - person Inger-Marie; 23.11.2010
comment
существует что-то подобное с использованием jquery? - person g.annunziata; 23.07.2013