Доброго времени суток. Имеется скрипт, который делает делает прокрутку страницы до якоря плавной.
function smoothlyScroll(){
var linkNav = document.querySelectorAll('.b-head-nav-item');
var speed = .5;
for( i=0 ; i < linkNav.length; i++){
linkNav[i].addEventListener('click', function(){
var scrollTop = window.pageYOffset;
var hash = this.href.replace(/[^#]*(.*)/, '$1');
var elemToScroll = document.querySelector(hash).getBoundingClientRect().top;
var start = null;
requestAnimationFrame(step);
function step(time){
console.log(time);
if (start === null){
start = time;
}
var progress = time - start;
console.log(progress);
var distance = (elemToScroll < 0
? Math.max(scrollTop - progress/speed, scrollTop + elemToScroll)
: Math.min(scrollTop + progress/speed, scrollTop + elemToScroll) );
window.scrollTo(0,distance);
if(distance != scrollTop + elemToScroll){
requestAnimationFrame(step);
} else {
location.hash = hash;
}
}
return false;
} ,false);
}
}
проблема в том, что хотелось бы сделать скорость прокрутки разной. Т.е. сначала побыстрее, а ближе к концу чтобы скорость замедлялась