场景
有页面如下:
左边是需要聚焦的内容,右边内容可点击。点击右侧内容,左侧自动聚焦到对应位置。
类似于通讯录,点击首字母聚焦到人名,这样的效果。
实现方法
1. location.href
- 类似a标签的href,不同的是它可以用js控制,也不局限于标签类型
- 缺点: 不能设置动画效果,可能会改变url和现有路由冲突
2. Element.scrollIntoView()
- IE6浏览器也支持的原生JS API,可通过
behavior
属性实现平滑滚动定位 - 语法:
-
element.scrollIntoView()
等同于element.scrollIntoView(true)
元素的顶端将和其所在滚动区的可视区域的顶端对齐;false 反之。 -
element.scrollIntoView({behavior, block, inline})
behavior
可选 定义动画过渡效果,'auto'
或'smooth'
。block
可选 定义垂直方向的对齐,'start'
,'center'
,'end'
,'nearest'
。inline
可选 定义水平方向的对齐,'start'
,'center'
,'end'
,'nearest'
。
-
- 具体看MDN文档