1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| function scroll_to(Yposition) { if ( typeof window.getComputedStyle(document.body).scrollBehavior === "undefined" ) { if (!window.requestAnimationFrame) { window.requestAnimationFrame = function(callback) { setTimeout(callback, 20); }; } let scrollposition = pageYOffset; function smoothScroll() { let distance = Yposition - scrollposition; scrollposition = scrollposition + distance / 10; if (Math.abs(distance) < 1) { window.scrollTo(0, Yposition); } else { window.scrollTo(0, scrollposition); requestAnimationFrame(smoothScroll); } } requestAnimationFrame(smoothScroll); } else { window.scrollTo(0, Yposition); } }
|