Localscroll / ScrollTo не работает на iPad

0

У меня проблемы с localscroll - у меня есть фиксированный элемент заголовка, который появляется после 100 или около того пикселей сверху. Когда пользователь нажимает на элемент навигации, он прокручивается до нужной позиции, но затем, когда я пытаюсь щелкнуть по другому пункту меню, он не сдвинется, если я не переместил страницу очень немного.

Это происходит только на iPad - он отлично работает в настольных браузерах.

У кого-нибудь есть идеи?

var sections = $('section,footer'),
links = $('nav a');
$(window).scroll(function() {
    var currentPosition = $(this).scrollTop();
    links.removeClass('selected');

    sections.each(function() {
        var top = $(this).offset().top - 100,
            bottom = top + $(this).height();

        if (currentPosition >= top && currentPosition <= bottom) {
            $('a[href="#' + this.id + '"]').addClass('selected');
        }
        if ($(window).scrollTop() + $(window).height() == $(document).height()) {
            links.removeClass('selected');
            $('.last a').addClass('selected');
        }
    });
});
$.localScroll();
Теги:
navigation
ipad
scrollto

1 ответ

0
Лучший ответ

Удалось найти исправление через: https://gist.github.com/mckamey/1e661854044177a95064

(function(){
var THROTTLE = 100,//ms
    _timer = 0,
    _dom = document.documentElement,
    _width = _dom.style.width,
    reset = function(){
        // reset size, unfortunately forces another reflow
        _dom.style.width = _width;
    },
    forceReflow = function(){
        if (_timer) {
            clearTimeout(_timer);
            _timer = 0;
        }

        _width = _dom.style.width;

        // force a reflow by increasing size 1px
        _dom.style.width = (_dom.offsetWidth+1)+'px';

        setTimeout(reset, 0);
    },
    onscroll = function() {
        if (_timer) {
            clearTimeout(_timer);
        }
        _timer = setTimeout(forceReflow, THROTTLE);
    };

window.addEventListener('scroll', onscroll, false);
})();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню