Прокрутите до ссылки с помощью скроллра

Я использую https://github.com/Prinzhorn/skrollr, чтобы анимировать фон моего сайта, когда я прокрутить. Однако я также хочу, чтобы мои ссылки прокручивались вверх и вниз по странице, как это делал бы обычный одностраничный сайт.

Проблема в том, что оба работают, если я вручную прокручиваю фоновые изменения, если я нажимаю ссылку, страница прокручивается в нужное место. Проблема в том, что когда я нажимаю кнопку, фон также не прокручивается.

Похоже, я работаю с двумя разными функциями прокрутки, и в результате они не работают вместе, и мне нужно использовать одну и ту же.

Вот код.

js — прокрутите до ссылки:

var $root = $('html, body');
    $('a').click(function() {
        var href = $.attr(this, 'href');
        $root.animate({
            scrollTop: $(href).offset().top
        }, 500, function () {
            window.location.hash = href;
        });
        return false;
    });

js — инициализация Skrollr

skrollr.init({
    smoothScrolling: true,
    forceHeight: true
}); 

Я попытаюсь собрать скрипку, чтобы сделать ее более понятной, но, надеюсь, ответ действительно прост.


person Daimz    schedule 11.09.2013    source источник


Ответы (2)


Если кто-то еще столкнется с этой проблемой, ответ лежит на ней: https://github.com/Prinzhorn/skrollr-menu

Это позволит вам прокручивать внутренние ссылки вместе с анимацией Skrollr. ОГРОМНЫЙ плюс и очень простое исправление, вам даже не нужен ваш собственный код прокрутки, и он будет работать с вашими ссылками.

person Daimz    schedule 11.09.2013

Есть способ сделать это, у Skrollr есть несколько очень полезных методов, в консоли просто введите переменную, содержащую skrollr, она покажет некоторые методы, которые вы можете использовать, один из них — «setScrollTop(int, bool)», так что просто вызовите этот метод с необходимой вам информацией, например:

s.setScrollTop(9000, правда)

Это означает, что я хочу, чтобы он прокручивался до положения высоты 9000. Это работает нормально, вам просто нужно знать положение высоты, куда вам нужно идти.

person waftom    schedule 23.08.2017