How come $('html').animate() only works in IE and $('body').animate() is needed for Chrome/Safari?

I have to use $('html, body').animate() to make the snippet fully cross-browser compatible, but this is inconvenient when chaining animations as they will sometimes act on both <html> and <body> .

IE8 depends on having 'html' while Chrome or Safari depend on having 'body', so therefore i must include both.

Why the discrepancy?


I think it's because the scroll bars (that I presume you're animating) are built into the browser at different locations. I've had this problem before and had to use the same method you incorporate. Bit annoying, but then so are most things when you want them to work across all browsers :-)


You should never even do $('html').animate since you should only animate content and the html tag is not a content tag. Stick with $('body').animate and it should work in all browsers.

链接地址: http://www.djcxy.com/p/3942.html

上一篇: .animate()的回调会被调用两次jquery

下一篇: 为什么$('html')。animate()只适用于IE和$('body')。animate()是否需要Chrome / Safari?