Firefox는 html
특별히 다르게 동작하도록 스타일이 지정되지 않은 한 오버플로를 수준에 둡니다.
Firefox에서 작동하게하려면
$('body,html').animate( ... );
작업 예
CSS 솔루션은 다음 스타일을 설정하는 것입니다.
html { overflow: hidden; height: 100%; }
body { overflow: auto; height: 100%; }
JS 솔루션이 가장 덜 침습적이라고 가정합니다.
최신 정보
아래의 많은 논의 scrollTop
는 두 요소 를 애니메이션 하면 콜백이 두 번 호출 된다는 사실에 중점을 둡니다 . 브라우저 감지 기능이 제안되어 이후에는 더 이상 사용되지 않으며, 일부는 상당히 멀리 가져 왔습니다.
콜백이 dem 등원이고 많은 컴퓨팅 성능이 필요하지 않은 경우 콜백이 두 번 발생하면 문제가되지 않을 수 있습니다. 콜백의 여러 호출이 실제로 문제가되고 기능 감지를 피하려면 콜백 내에서 콜백이 한 번만 실행되도록하는 것이 더 간단 할 수 있습니다.
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');
}));