GlobalEventHandlers.onscroll
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
元素的 scroll
事件处理函数。
语法
element.onscroll = functionReference
参数
functionReference 是一个函数的引用。当该元素滚动时,会执行该函数。
备注:
不要将 onscroll 与 onwheel
混淆。onwheel 是鼠标滚轮旋转,而 onscroll 处理的是对象内部内容区的滚动事件。
示例
html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<style>
#container {
position: absolute;
height: auto;
top: 0;
bottom: 0;
width: auto;
left: 0;
right: 0;
overflow: auto;
}
#foo {
height: 1000px;
width: 1000px;
background-color: #777;
display: block;
}
</style>
</head>
<body>
<div id="container">
<div id="foo"></div>
</div>
<script type="text/javascript">
document.getElementById("container").onscroll = function () {
console.log("scrolling");
};
</script>
</body>
</html>
Example
这个示例能说明更多问题
This example monitors scrolling on a <textarea>
, and logs the element's vertical scroll position accordingly.
HTML
html
<textarea>1 2 3 4 5 6 7 8 9</textarea>
<p id="log"></p>
CSS
css
textarea {
width: 4rem;
height: 8rem;
font-size: 3rem;
}
JavaScript
js
const textarea = document.querySelector("textarea");
const log = document.getElementById("log");
textarea.onscroll = logScroll;
function logScroll(e) {
log.textContent = `Scroll position: ${e.target.scrollTop}`;
}
Result
注意
当用户滚动某个元素的内容时 scroll
事件将会被触发。Element.onscroll
同等于 element.addEventListener("scroll" ... )
。
规范
Specification |
---|
CSSOM View Module # eventdef-document-scroll |
HTML Standard # handler-onscroll |