【转】jquery 中scrollTop在Firefox下不起作用

时间:2022-12-05 19:12:44

原文链接:http://*.com/questions/8149155/animate-scrolltop-not-working-in-firefox

 

 

【转】jquery 中scrollTop在Firefox下不起作用

This function works fine. It scrolls the body to a desired container's offset

function scrolear(destino){ var stop = $(destino).offset().top; var delay = 1000; $('body').animate({scrollTop: stop}, delay); return false; }

But not in Firefox. Why?

-EDIT-

To handle de double trigger in the acepted answer, I suggest stoping the element before the animation:

$('body,html').stop(true,true).animate({scrollTop: stop}, delay);

up vote 240 down vote accepted

Firefox places the overflow at the html level, unless specifically styled to behave differently.

To get it to work in Firefox, use

$('body,html').animate( ... );

Working example

The CSS solution would be to set the following styles:

html { overflow: hidden; height: 100%; } body { overflow: auto; height: 100%; }

I would assume that the JS solution would be least invasive.