2017-06-01 3 views
0

、私はこれを実行します。自動的にスクロールするときのスクロール速度の変更方法は?ユーザーがこのボタンをクリックすると

const myDiv = document.getElementsByClassName('someClass')[0]; 
myDiv.scrollTop = myDiv.scrollHeight; 

をしかし、それは非常に速く、ジャンプ、ページ内のユーザーに再配向させる自分自身のためにいくつかの時間がかかります。新しい位置にスクロールする方法はありますか(jQueryなし)

答えて

0

私がこの機能を見つけた私は覚えていないが、それは動作します:)

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); 
関連する問題