As most answers here have noted, putting -webkit-overflow-scrolling: touch
on any element other than document.body causes problems. If you're using a fixed header and don't want to add any dependencies, this should do the trick for anyone using JQuery:
$('.fixed-header').on('click',function(e){
var $scrollingElement = $('.scrolling-element');
$scrollingElement.css('overflow','hidden');
$scrollingElement.animate({ scrollTop: 0 }, "fast", function() {
$scrollingElement.css('overflow','auto');
});
});
The purpose of toggling the overflow
property is for devices using momentum scrolling. This immediately stops any momentum and does the scroll animation. I made the scrolling element a variable just so that we're not unnecessarily querying the DOM several times. Hope this helps someone out down the road. If you'd rather be hands off about it, the github project @patrick linked to looks like another great solution.