Animate scrollTop not working in firefox
up vote 115 down vote favorite 21 |
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); 登录后复制 |
10 Answers
active oldest votes
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. |