您的位置:首页 > Web前端 > JQuery

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

2016-01-13 17:34 567 查看
原文链接:http://stackoverflow.com/questions/8149155/animate-scrolltop-not-working-in-firefox

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.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: