29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
|
const scrollToTop = document.querySelector('.scroll-to-top');
|
||
|
const scrollToTopValue = document.querySelector('.scroll-to-top-value');
|
||
|
scrollToTop.addEventListener('click', () => {
|
||
|
let scrollTopTimer = setInterval(function () {
|
||
|
let top = document.body.scrollTop || document.documentElement.scrollTop;
|
||
|
let speed = top / 5;
|
||
|
if (document.body.scrollTop !== 0) {
|
||
|
document.body.scrollTop -= speed;
|
||
|
} else {
|
||
|
document.documentElement.scrollTop -= speed;
|
||
|
}
|
||
|
if (top === 0) {
|
||
|
clearInterval(scrollTopTimer);
|
||
|
}
|
||
|
}, 30);
|
||
|
});
|
||
|
|
||
|
|
||
|
const scrollHeight = document.body.scrollHeight || document.documentElement.scrollHeight;
|
||
|
const clientHeight = window.innerHeight || document.documentElement.clientHeight;
|
||
|
window.addEventListener('scroll', function (_e) {
|
||
|
var validH = scrollHeight - clientHeight;
|
||
|
var scrollH = document.body.scrollTop || document.documentElement.scrollTop;
|
||
|
scrollToTopValue.innerHTML = Math.round(scrollH / validH * 100).toFixed(0) + '%';
|
||
|
|
||
|
});
|
||
|
|
||
|
|