0
當用戶點擊這個按鈕,我執行此:如何在自動滾動到某個位置時更改滾動速度?
const myDiv = document.getElementsByClassName('someClass')[0];
myDiv.scrollTop = myDiv.scrollHeight;
但它跳躍得這麼快,需要一定的時間,爲用戶重新定位自己的頁面。有什麼辦法可以逐漸滾動到新的位置(沒有jQuery)嗎?
當用戶點擊這個按鈕,我執行此:如何在自動滾動到某個位置時更改滾動速度?
const myDiv = document.getElementsByClassName('someClass')[0];
myDiv.scrollTop = myDiv.scrollHeight;
但它跳躍得這麼快,需要一定的時間,爲用戶重新定位自己的頁面。有什麼辦法可以逐漸滾動到新的位置(沒有jQuery)嗎?
我不記得在那裏我從發現這個功能,但它的工作原理:)
function scrollTo(element, to, duration) {
if (duration <= 0) return;
var difference = to - element.scrollTop;
var perTick = difference/duration * 16;
var turn = element.scrollTop < to;
setTimeout(function() {
element.scrollTop = element.scrollTop + perTick;
if ((turn && element.scrollTop >= to) || (!turn && element.scrollTop <= to)) {
element.scrollTop = to;
return;
}
scrollTo(element, to, duration - 16);
}, 16);
};
const myDiv = document.getElementsByClassName('someClass')[0];
scrollTo(myDiv ,myDiv.scrollHeight,400);