Jquery scrollTo прокручивается только маленькими шагами - PullRequest
2 голосов
/ 20 октября 2010

Я использую плагин scrollTo для прокрутки к некоторым заголовкам.Проблема в том, что он будет прокручиваться только вверх небольшими шагами, что определяется высотой окна браузера.Кажется, он не распознает идентификаторы, которые я использую.

Нажмите здесь, чтобы просмотреть страницу , вам необходимо прокрутить страницу вниз и выбрать элемент двумя пальцами.Вам нужно вручную прокрутить вниз и щелкнуть ссылки справа, чтобы увидеть вышеупомянутое поведение (извините, оно немного сложное).

Ответы [ 3 ]

2 голосов
/ 20 октября 2010

Я использую этот маленький фрагмент для ругательства

    ///  <summary>
    ///     Scrolls the page to a single matched element.
    ///     Limitations: The document can only scroll a maximum of it's height. If an element is at the bottom of a page with nothing
    ///     below it then it cannot move that element to the top of the page as nothing exists to fill the space.
    ///  </summary>
    ///  <param name="target" type="String">
    ///     The element to scroll to
    ///  </param>
    ///  <param name="padding" type="Integer">
    ///     The padding to add to the scrolling destination. Negative values reduce the scrolling distance.
    ///  </param>
    ///  <param name="speed" type="Integer">
    ///     The the speed at which to perform the animation. Positive integers only.
    ///  </param>
    function scrollTo(target, padding, speed) {

        // Define our variables.
        var target_offset, target_top;

        // Fix our value to add the selector.
        if (target.indexOf("#") == -1) {
            target = "#" + target;
        }

        // Get the top offset of the target anchor and add any necessarry padding.
        target_offset = $(target).offset();
        target_top = target_offset.top + padding;

        // Scroll to that anchor by setting the body to scroll to the anchor top.
        $("html").animate({ scrollTop: target_top }, speed);
    }
2 голосов
/ 20 октября 2010

Нет необходимости использовать плагин для этого.

Просто попробуйте следующий код -

   $('html').animate({
    scrollTop: $('#id where you want to scroll').offset().top
    }, 2000);
0 голосов
/ 21 октября 2010

Спасибо вам обоим за ваши ответы. Я решил, что проблема была в том, что я скрывал родительский div тегов имен с помощью CSS и показывал с помощью JS. Это заставляло браузер не знать, как найти теги имен (или что-то в этом роде). Я убрал дисплей: ни один из CSS и вуаля!

...