2013-12-06 4 views
0

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

Это происходит только на 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(); 

ответ

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); 
})(); 
Смежные вопросы