$(document).ready(function () {
var lastScrollPosition = 0;
var currStep = 0;
var totalSteps = 0;
jQuery.fn.extend({
scrollTo: function (elem, speed) {
if (!console.assert(($(this).children(elem).length > 0), "No children found for " + this)) {
$(this).animate({
scrollTop: $(elem).offset().top;
}, speed, "linear", function () {
setTimeout($(this).scrollTo(elem, speed), 400);
});
}
}
});
$('body').scroll(function () {
if ($(this).scrollTop() < lastScrollPosition) {
$(this).trigger('scrollUp');
}
else if ($(this).scrollTop() > lastScrollPosition) {
$(this).trigger('scrollDown');
}
});
$('body').on('scrollUp', function () {
if ((currStep > 0) || (currStep <= totalSteps)) {
++currStep;
$(this).scrollTo('section[data-step="' + currStep + '"]', 800);
}
});
$('body').on('scrollDown', function () {
if ((currStep >= 0) || (currStep < totalSteps)) {
--currStep;
}
});
});
Comments