HTML DOM scrollTop 属性
实例
获取 <div> 元素的内容水平和垂直滚动的像素数:
var elmnt = document.getElementById("myDIV");
var x = elmnt.scrollLeft;
var y = elmnt.scrollTop;
亲自试一试 »
var x = elmnt.scrollLeft;
var y = elmnt.scrollTop;
页面下方有更多实例。
定义和用法
scrollTop 属性设置或返回元素内容垂直滚动的像素数。
提示: 使用 scrollLeft 属性设置或返回元素内容水平滚动的像素数。
提示: 要向元素添加滚动条,请使用 overflow 属性。
提示: 在滚动元素的滚动条时发生 onscroll 事件。
浏览器支持
属性 | |||||
---|---|---|---|---|---|
scrollTop | Yes | Yes | Yes | Yes | Yes |
语法
返回 scrollTop 属性:
element.scrollTop
设置 scrollTop 属性:
element.scrollTop = pixels
属性值
值 | 描述 |
---|---|
pixels | 指定垂直滚动元素内容的像素数。 特别说明:
|
技术细节
返回值: | 一个数字, 表示元素内容垂直滚动的像素数 |
---|
更多实例
实例
将 <div> 元素的内容水平滚动至50像素,垂直滚动至10像素:
var elmnt = document.getElementById("myDIV");
elmnt.scrollLeft = 50;
elmnt.scrollTop = 10;
亲自试一试 »
elmnt.scrollLeft = 50;
elmnt.scrollTop = 10;
实例
将 <div> 元素的内容水平滚动50像素,垂直滚动10像素:
var elmnt = document.getElementById("myDIV");
elmnt.scrollLeft += 50;
elmnt.scrollTop += 10;
亲自试一试 »
elmnt.scrollLeft += 50;
elmnt.scrollTop += 10;
实例
将 <body> 的内容水平滚动30像素,垂直滚动10像素:
var body = document.body; // Safari
var html = document.documentElement; // Chrome, Firefox, IE and Opera places the overflow at the <html> level, unless else is specified. Therefore, we use the documentElement property for these browsers
body.scrollLeft += 30;
body.scrollTop += 10;
html.scrollLeft += 30;
html.scrollTop += 10;
亲自试一试 »
var html = document.documentElement; // Chrome, Firefox, IE and Opera places the overflow at the <html> level, unless else is specified. Therefore, we use the documentElement property for these browsers
body.scrollLeft += 30;
body.scrollTop += 10;
html.scrollLeft += 30;
html.scrollTop += 10;
实例
在不同滚动位置的类名之间切换——当用户从页面顶部向下滚动50个像素时,类名"test"将被添加到元素中(再次向上滚动时会被删除)。
window.onscroll = function() {myFunction()};
function myFunction() {
if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {
document.getElementById("myP").className = "test";
} else {
document.getElementById("myP").className = "";
}
}
亲自试一试 »
function myFunction() {
if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) {
document.getElementById("myP").className = "test";
} else {
document.getElementById("myP").className = "";
}
}
实例
当用户从页面顶部向下滚动350像素时,在元素中滑动(添加 slideUp 类):
window.onscroll = function() {myFunction()};
function myFunction() {
if (document.body.scrollTop > 350 || document.documentElement.scrollTop > 350) {
document.getElementById("myImg").className = "slideUp";
}
}
亲自试一试 »
function myFunction() {
if (document.body.scrollTop > 350 || document.documentElement.scrollTop > 350) {
document.getElementById("myImg").className = "slideUp";
}
}
实例
Draw a triangle on scroll:
<!-- Use SVG to draw the triangle (has to be <path>) -->
<svg id="mySVG">
<path fill="none" stroke="red" stroke-width="3" id="triangle" d="M150 0 L75 200 L225 200 Z">
</svg>
<script>
// Get the id of the <path> element and the length of <path>
var triangle = document.getElementById("triangle");
var length = triangle.getTotalLength();
// The start position of the drawing
triangle.style.strokeDasharray = length;
// Hide the triangle by offsetting dash. Remove this line to show the triangle before scroll draw
triangle.style.strokeDashoffset = length;
// Find scroll percentage on scroll (using cross-browser properties), and offset dash same amount as percentage scrolled
window.addEventListener("scroll", myFunction);
function myFunction() {
var scrollpercent = (document.body.scrollTop + document.documentElement.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight);
var draw = length * scrollpercent;
// Reverse the drawing (when scrolling upwards)
triangle.style.strokeDashoffset = length - draw;
}
</script>
亲自试一试 »
<svg id="mySVG">
<path fill="none" stroke="red" stroke-width="3" id="triangle" d="M150 0 L75 200 L225 200 Z">
</svg>
<script>
// Get the id of the <path> element and the length of <path>
var triangle = document.getElementById("triangle");
var length = triangle.getTotalLength();
// The start position of the drawing
triangle.style.strokeDasharray = length;
// Hide the triangle by offsetting dash. Remove this line to show the triangle before scroll draw
triangle.style.strokeDashoffset = length;
// Find scroll percentage on scroll (using cross-browser properties), and offset dash same amount as percentage scrolled
window.addEventListener("scroll", myFunction);
function myFunction() {
var scrollpercent = (document.body.scrollTop + document.documentElement.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight);
var draw = length * scrollpercent;
// Reverse the drawing (when scrolling upwards)
triangle.style.strokeDashoffset = length - draw;
}
</script>