リンクをクリックした後、正確な要素までスクロールするためのページを作成します。しかし、それをクリックすると、ページの終わりまでスクロールし、スクロールしようとするとスクロールします。JavaScript clearIntervalが機能しません
これは、私の機能でclearInterval()
が機能していないことを意味しています。 "なぜ ?"ここで
は関数である。
function smoothScr() {
\t var elem = document.getElementById("main");
\t var elemPos = elem.getBoundingClientRect().top;
\t var i = 0;
\t var changePos = setInterval(changingPos, 10); \t
\t function changingPos() {
\t \t if (elemPos == 0) { \t \t \t \t \t
\t \t clearInterval(changePos);
\t \t } else { \t
\t \t \t i++;
\t \t \t window.scrollBy(0, i);
\t \t };
\t }
}
なぜアンカーを使用しないのですか? –
'elemPos'は' smoothScr'を呼び出すときに一度だけ定義されます。自動的には更新されません。 'changingPos'で値を変更しなければなりません。 – Teemu
あなたのケースの 'window.scrollBy'は1ps、2px、3pxなどのようにスクロールする必要があります。これを 'window.scrollBy(0、1)'に変更してみてください。 – serge1peshcoff