scrollIntoView适用于所有浏览器吗?

9-b*_*its 82 javascript jquery js-scrollintoview

是否scrollIntoView()在所有的浏览器?如果没有,还有jQuery其他选择吗?

Rob*_*nik 80

它支持是,但用户体验是......糟糕的.

正如@ 9bits所指出的,这一直是所有主流浏览器支持的.不用担心.主要问题是它的工作方式.它只是跳转到一个特定的元素,也可能在页面的末尾.通过跳转到它,用户不知道是否:

  • 页面已向上滚动
  • 页面已向下滚动
  • 他们被重定向到其他地方

前两个可以通过滚动位置确定,但谁说用户在跳转之前跟踪滚动位置?所以这是一种不确定的行为.

最后一个可能是真的,特别是如果页面具有滚动视图的移动标题并且剩余页面设计不暗示在同一页面上的任何内容(如果它也没有任何总高度垂直元素,如左菜单酒吧).有多少页面有这个问题你会感到惊讶.亲自检查一下.转到某个页面,在顶部查看,然后End按键再次查看.您可能会认为这是一个不同的页面.

动画scrollintoviewjQuery插件来救援

这就是为什么仍然有插件执行滚动到视图而不是使用本机DOM功能.它们通常动画滚动,消除了上面列出的所有3个问题.用户可以轻松跟踪运动.

  • 使用`ScrollIntoViewOptions`的新规范允许指定`behavior:'smooth'`.遗憾的是,没有办法轻易检测浏览器是否支持此选项... (7认同)
  • Firefox似乎支持`行为:"流畅",但不支持Chrome或Safari. (6认同)