Skip to content

Instantly share code, notes, and snippets.

@georgeOsdDev
Created May 14, 2013 11:14
Show Gist options
  • Select an option

  • Save georgeOsdDev/5575209 to your computer and use it in GitHub Desktop.

Select an option

Save georgeOsdDev/5575209 to your computer and use it in GitHub Desktop.
scrollHelper
var App = {};
App.enableSmoothScroll = function(){
var lastScrollY= 0,
isScrolling = false,
targetAnc,
startTouch = {},
endTouch = {};
function saveCurrentPos(e){
lastScrollY = window.scrollY;
startTouch = endTouch = e.originalEvent.targetTouches[0];
}
function saveMovedPos(e){
endTouch = e.originalEvent.targetTouches[0];
}
function smoothScroll(e){
var currentScrollY,direction,scroll;
if (startTouch.pageY-endTouch.pageY < 10 &&
startTouch.pageY-endTouch.pageY > -10){
return;
}
currentScrollY = window.scrollY;
direction = lastScrollY > currentScrollY ? -1 : 1;
isScrolling = true;
target = currentScrollY + (500 * direction);
if (target < 0){
target = 0;
}
$('html body').animate({scrollTop:target}, 200,function(){
isScrolling = false;
});
}
$(window).on('touchstart',saveCurrentPos);
$(window).on('touchmove',saveMovedPos);
$(window).on('touchend',smoothScroll);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment