我正在构建一个页面,当发生某些事情时,必须将动画滚动到某些位置。
我正在将jQuery.animate
应用于document.documentElement
,它似乎在Firefox和某些版本的IE上正常运行,而在Chrome和其他版本的IE上,它必须适用于document.body
工作。
我在这里是个白痴吗?我错过了什么?如果我不是,那么检测哪一个使用的正确方法是什么?
答案 0 :(得分:2)
你不是白痴,一直很棘手,例如看here评论:)
据我记得,
$('html, body').animate({scrollTop: '-=100'})
现在适用于所有主流浏览器。
答案 1 :(得分:0)
一个易于使用的插件是scrollTo:http://demos.flesler.com/jquery/scrollTo/
否则您通常可以使用$(window).animate();
答案 2 :(得分:0)
执行此操作的安全方法似乎是立即在document.documentElement
,document.body
和window
上运行动画。一个人肯定会工作。
即使这个解决方案很丑陋,但在大多数情况下都适用。
答案 3 :(得分:0)
有几种非常古老的方法(不是标准的,但在每个浏览器中都有效):window.scroll
()
,window.scrollTo()
,window.scrollBy()
等。参见例如此MDN页面用于文档:https://developer.mozilla.org/en-US/docs/DOM/Window.scroll
请注意,在Firefox或Chrome中,这些方法只会更改scrollTop / scrollLeft并且不会立即滚动(滚动会延迟到javascript事件处理程序返回), 在Opera和IE中,这些方法实际上是立即滚动窗口(这不是很好)。
如果所有浏览器都可以使用相同的元素进行滚动,那将会好得多。