Я работаю над функцией, которая будет прокручивать окно до заданной позиции. Мой скрипт работает, но я хотел бы сделать эффект ослабления более плавным.Усиление эффекта в чистом javascript
Как я могу сделать эффект ослабления в javascript (я не хочу использовать плагины, такие как jquery или другие)?
Вот мое ослабление функции:
function myScrollFunction(yPositionToScrollTo){
setTimeout(function(){
if(window.pageYOffset < yPositionToScrollTo - 640){window.scroll(0, window.pageYOffset+64)}
else if(window.pageYOffset < yPositionToScrollTo - 320){window.scroll(0, window.pageYOffset+32)}
else if(window.pageYOffset < yPositionToScrollTo - 160){window.scroll(0, window.pageYOffset+16)}
else if(window.pageYOffset < yPositionToScrollTo - 80){window.scroll(0, window.pageYOffset+8)}
else if(window.pageYOffset < yPositionToScrollTo - 40){window.scroll(0, window.pageYOffset+4)}
else if(window.pageYOffset < yPositionToScrollTo - 10){window.scroll(0, window.pageYOffset+2)}
else{window.scroll(0, window.pageYOffset+1)}
if(window.pageYOffset < yPositionToScrollTo){
myScrollFunction(yPositionToScrollTo);
}
},20)
}
Update:
function myScrollFunction(yPositionToScrollTo){
var differens = yPositionToScrollTo - window.pageYOffset;
setTimeout(function(){
window.scroll(0, yPositionToScrollTo + differens/2);
if(window.pageYOffset < yPositionToScrollTo){
myScrollFunction(yPositionToScrollTo);
}
},20)
}
Возможно, вместо того, чтобы иметь только предустановленные номера, как сейчас, вы создаете еще один динамический скрипт, который автоматически генерирует эти числа, и больше из них? – Markasoftware
Thanks Markasoftware. Я добавил скрипт, который каждый раз выделяет оставшуюся прокрутку по два. Любая идея, как рассчитать его более плавно? – user1087110