scrollIntoView
简介
DOM规范中并没有规定各浏览器需要实现怎样的滚动页面区域,各浏览器实现了相应的方法,可以使用不同的方式控制页面区域的滚动。这些方法作为HTMLElement类型的扩展存在,所以它能在所有元素上使用。
scrollIntoView()
默认1
element.scrollIntoView() // 滚动到可视范围顶端
boolean值1
2element.scrollIntoView(true) // 滚动到可视范围顶端
element.scrollIntoView(false) // 滚动到可视范围底部
对象
- behavior 可选
定义缓动动画, “auto”, “instant”, 或 “smooth” 之一。默认为 “auto”。 - block 可选
“start”, “center”, “end”, 或 “nearest”之一。默认为 “start”。 - inline 可选
“start”, “center”, “end”, 或 “nearest”之一。默认为 “nearest”。
1 | // 动画运动到可视范围中间 |
方法
- scrollIntoView(alignWithTop):滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素。如果alignWithTop为true,或者省略它,窗口会尽可能滚动到自身顶部与元素顶部平齐。——-目前各浏览器均支持
- scrollIntoViewIfNeeded(alignCenter):只在当前元素在视窗的可见范围内不可见的情况下,才滚动浏览器窗口或容器元素,最终让当前元素可见。如果当前元素在视窗中可见,这个方法不做任何处理。如果将可选参数alignCenter设置为true,则表示尽量将元素显示在视窗中部(垂直方向)——Safari、Chrome实现了这个方法
- scrollByLines(lineCount):将元素的内容滚动指定的行数的高度,lineCount的值可以为正值或是负值。—Safari、Chrome实现了这个方法
- scrollByPages(pageCount):将元素的内容滚动指定的页面的高度,具体高度由元素的高度决定。—Safari、Chrome实现了这个方法
scrollIntoView()和scrollIntoVIewIfNeeded()作用的是元素的窗口,而scrollByLines()、scrollByPages()影响元素自身
兼容性
由于这个属性还没有成为通用标准,所以使用前需要注意兼容性。