Firefox html
, özellikle farklı davranacak şekilde tasarlanmamışsa taşmayı düzeye yerleştirir.
Firefox'ta çalışmasını sağlamak için
$('body,html').animate( ... );
Çalışma örneği
CSS çözümü aşağıdaki stilleri ayarlamak olacaktır:
html { overflow: hidden; height: 100%; }
body { overflow: auto; height: 100%; }
JS çözüm en az invaziv olacağını varsayalım.
Güncelleme
Aşağıdaki tartışmaların çoğu, scrollTop
iki öğenin canlandırılmasının geri aramanın iki kez çağrılmasına neden olacağına odaklanmaktadır . Tarayıcı algılama özellikleri önerilmiş ve daha sonra kullanımdan kaldırılmıştır ve bazıları tartışmasız oldukça uzaktır.
Geri arama idempotent ise ve çok fazla bilgi işlem gücü gerektirmiyorsa, iki kez ateşlemek tam bir sorun olmayabilir. Geri aramanın birden çok çağrılması gerçekten bir sorun oluşturuyorsa ve özellik algılamasından kaçınmak istiyorsanız, geri aramanın geri aramanın yalnızca bir kez çalıştırılmasını zorlamak daha kolay olabilir:
function runOnce(fn) {
var count = 0;
return function() {
if(++count == 1)
fn.apply(this, arguments);
};
};
$('body, html').animate({ scrollTop: stop }, delay, runOnce(function() {
console.log('scroll complete');
}));