var doAnimatedScroll(action,distance,speed){
/* пишем функцию, которая делает плавный скролл на нужное количество пикселей в нужном направлении.
на время анимации ставим window.fixPositionAnimationInProgress=true;
и лочим скролл страницы
*/
}
/* Функция, решающая как "поправить" слайды */
var fixPositionAnimation=function(){
var delta = window.scrollY % window.innerHeight;
var action="MOVE UP";
var distance = delta;
if (delta<window.innerHeight/2) {
action="MOVEDOWN"
distance = window.innerHeight-delta;
}
doAnimatedScroll(action,distance,700)
}
/* Функция, попытки скролла. Вместе с функцией ниже срабатывает, только для последнего вызова в череде, того, у которого правильный id*/
var tryScroll = function(uid){
if (window.scrollUid==uid&&window.fixPositionAnimationInProgress) {
fixPositionAnimation()
}
}
var condensor = function(){
if (!window.fixPositionAnimationInProgress)
setTimeout(function(){
var uid=Date.now;
window.scrollUid=uid;
tryScroll(uid)}, 1000)
}
window.onscroll = condensor