元素:scrollLeft 属性
Element.scrollLeft
属性获取或设置元素内容相对于其左边缘滚动的像素数。在现代浏览器中,此值精确到亚像素,这意味着它不一定是整数。
值
一个双精度浮点数,表示元素当前水平方向上相对于起始位置滚动了多少像素,正值表示元素向右滚动(以显示右侧更多内容)。如果元素没有向左或向右滚动,则scrollLeft
为0。如果文档不是活动文档,则返回的值为0。如果文档在亚像素精度的设备上渲染,则返回的值也是亚像素精度的,可能包含小数部分。
如果元素可以从初始包含块向左滚动,则scrollLeft
可能为负值。例如,如果元素的direction
为rtl
(从右到左)并且内容向左增长,则当滚动条位于最右侧位置(滚动内容的开头)时,scrollLeft
为0
,然后随着您向内容末尾滚动,scrollLeft
的值逐渐变为负值。
Safari 通过更新scrollLeft
使其超出最大滚动位置来响应过度滚动(除非禁用了默认的“回弹”效果,例如通过将overscroll-behavior
设置为none
),而 Chrome 和 Firefox 则不会这样做。
可以设置scrollLeft
属性,这会导致元素滚动到指定的水平位置,与使用Element.scroll()
且behavior: "auto"
的效果相同。
示例
HTML
html
<div id="container">
<div id="content">Click the button to slide right!</div>
</div>
<button id="slide" type="button">Slide right</button>
CSS
css
#container {
width: 100px;
height: 100px;
border: 1px solid #ccc;
overflow-x: scroll;
}
#content {
width: 250px;
background-color: #ccc;
}
JavaScript
js
const button = document.getElementById("slide");
button.onclick = () => {
document.getElementById("container").scrollLeft += 20;
};
结果
规范
规范 |
---|
CSSOM 视图模块 # dom-element-scrollleft |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。