JavaScript 如何获取滚动条的位置

JavaScript 如何获取滚动条的位置

JavaScript 是一种很棒的语言,我们可以通过它来访问HTML页面中的任何元素。下面讨论了一些获取滚动条位置的简单技巧:

方法1

当遇到函数 getScroll() 时,它将当前滚动条的值设置为其 idposition 的元素。水平和垂直轴上的滚动条位置由整数表示。pageXOffset属性返回沿水平轴(即左右)滚动的像素数,pageYOffset属性返回沿垂直轴(即上下)滚动的像素数。pageXOffset和pageYOffset属性等于scrollX和scrollY属性,它们是只读属性。

示例: 在此示例中,我们使用了上述解释的方法。

<style>
    .scroll-area {
        height: 1000px;
        background-color: #eee;
        padding: 10%;
    }
 
    button {
        margin-top: 200px;
        margin-bottom: 100px;
        display: block;
    }
</style>
 
<h1 style="color: green">
    GeeksforGeeks
</h1>
<div>
    <p>Current position is:
        <b><span id="position"></span></b>
    </p>
</div>
<p>
    Click on the buttons below to get the current
    position of the scrollbar.
</p>
 
<p class="scroll-area">
    GeeksforGeeks is a computer science portal.
    This is a large scrollable area.
 
    <button onclick="getScroll()">
        Click to get current scrollbar position
    </button>
    <button onclick="getScroll()">
        Click to get current scrollbar position
    </button>
    <button onclick="getScroll()">
        Click to get current scrollbar position
    </button>
</p>
 
<script>
    getScroll = () => {
        let position = document.getElementById('position');
        position.innerHTML = ""
        if (window.pageYOffset != undefined) {
            position.innerHTML = " X-axis : "
                + pageXOffset + " Y-axis : " + pageYOffset;
        } else {
            let x_axis, y_axis, doc = document,
                ele = doc.documentElement,
                b = doc.body;
            x_axis = ele.scrollLeft || b.scrollLeft || 0;
            y_axis = ele.scrollTop || b.scrollTop || 0;
            position.innerHTML = " X-axis : "
                + x_axis + " Y-axis : " + y_axis;
        }
    }
</script>
HTML

输出:

JavaScript 如何获取滚动条的位置

方法2

使用事件监听器获取滚动条位置。Window接口表示包含DOM文档的窗口,我们可以通过在其上添加事件监听器来获取滚动条位置。每当滚动事件触发时,该函数将自动触发。scrollX和scrollY返回浮点数。每当滚动事件发生时,事件监听器将自动触发并更新id为position的元素中滚动条位置的值。

示例: 此示例演示了上述方法。

<style>
    .scroll-area {
        height: 1000px;
        background-color: #eee;
        padding: 10%;
    }
 
    #sticky {
        position: sticky;
        top: 0;
        background: #008000;
        color: white;
        padding: 1px;
        text-align: center;
    }
</style>
 
<h1 style="color: green">
    GeeksforGeeks
</h1>
 
<div id="sticky">
    <p>Current position is:
        <b><span id="position"></span></b>
    </p>
</div>
<p>
    Click on the buttons below to get the
    current position of the scrollbar.
</p>
 
<p class="scroll-area">
    GeeksforGeeks is a computer science portal.
    This is a large scrollable area.
</p>
<script>
    let position = document.getElementById('position');
    position.innerHTML = ""
 
    window.addEventListener("scroll", function (event) {
 
        let scroll_y = this.scrollY;
        let scroll_x = this.scrollX;
        console.log(scroll_x, scroll_y);
        position.innerHTML = " X-axis : "
            + scroll_x + "Y-axis : " + scroll_y
    });
</script>
HTML

输出:

JavaScript 如何获取滚动条的位置

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册