ChromeとSafariではうまく動作するスムーズスクロール機能を持っていますが、Firefoxではdocument.body.scrollTop
を呼び出しているため、ボールが再生されません。JavaScriptはスムーズにブラウザ間でスクロールする
function smoothScroll(body, destination, duration) {
duration = (typeof duration != "undefined")
? duration
: 500;
if (duration <= 0) return;
var difference = destination - body.scrollTop;
var perTick = difference/duration * 10;
setTimeout(function() {
body.scrollTop = body.scrollTop + perTick;
if (body.scrollTop === destination) {
showAndHideNav("hide");
return;
}
smoothScroll(body, destination, duration - 10);
}, 10);
}
function findDestination(element) {
var value = element.getAttribute("value"),
destination = document.getElementById(value).offsetTop;
return destination;
}
smoothScroll(document.body, findDestination(element));
私は右の場所を特定するが、それらの場所にスクロールしない、pageYOffset
でscrollTop
を交換してみました。
scrollTop
のブラウザフレンドリーな方法をお勧めしますが、ブラウザ間でのスムーズなスクロールが可能ですか?
ありがとうございました!
は 'ウィンドウを試してみてください.scrollTop'。 [SO](http://stackoverflow.com/a/17776759/1086525) – Whothehellisthat