📜  jQuery |滚动()与示例(1)

📅  最后修改于: 2023-12-03 15:02:14.347000             🧑  作者: Mango

jQuery | 滚动() 与示例

jQuery的滚动(scroll)方法可以用于处理滚动事件,比如用户拖动滚动条、页面滚动等。

语法
$(selector).scroll(function);
参数
  • function:滚动事件发生时所执行的函数。
示例
$(window).scroll(function() {
    // 当页面滚动时,执行以下函数
    console.log("页面滚动了");
});

在上面的示例中,我们使用scroll方法为window对象添加了一个滚动事件监听器。每当页面发生滚动时,就会调用回调函数,并显示一条消息在控制台中。

实现滚动时显示隐藏的元素
<div style="height: 1000px;"></div> <!-- 用于测试而添加的占位符 -->
<div id="hiddenDiv" style="display: none;">这个元素默认是隐藏的</div>

<script>
$(window).scroll(function() {
    // 当滚动条滚动至距离顶部1000px时,显示hiddenDiv元素
    if ($(this).scrollTop() > 1000) {
        $('#hiddenDiv').fadeIn();
    } else {
        $('#hiddenDiv').fadeOut();
    }
});
</script>

在这个示例中,我们在页面上创建了一个空的div,并随后添加了另一个div元素,它默认是隐藏的。当用户向下滚动页面时,当滚动条滚动到距离顶部1000像素处时,会显示这个隐藏的元素。

我们使用了scrollTop()方法获取当前滚动的位置(距离顶部的像素数),如果它大于1000,我们就使用fadeIn()方法来为hiddenDiv元素添加渐显动画;反之,我们则使用fadeOut()方法为其添加渐隐动画。

滚动到页面底部时添加新元素
<div id="container"></div> <!-- 用于装载动态加载的新元素的容器 -->

<script>
var page = 1; // 页码
var isLoading = false; // 是否正在加载

function loadMore() {
    // 如果正在加载,退出函数
    if (isLoading) {
        return;
    }

    // 设置状态为正在加载
    isLoading = true;

    // 获取 Ajax 数据
    $.get('http://example.com/data/page/' + page, function(data) {
        // 在 container 中添加新元素
        $('#container').append(data);

        // 将页码加1
        page++;

        // 设置状态为加载结束
        isLoading = false;
    });
}

// 当页面滚动到底部时,加载更多数据
$(window).scroll(function() {
    // 如果已经滚动至底部
    if ($(window).scrollTop() + $(window).height() >= $(document).height()) {
        loadMore();
    }
});
</script>

在这个示例中,我们定义了一个loadMore()函数,用于加载新的 Ajax 数据。当我们的页面滚动到底部时(即已经滚动过的距离与当前窗口高度之和等于整个文档的高度时),就会执行此函数。

函数首先检查现在是否正在加载数据(如果是,则退出函数),并将状态设置为正在加载。随后我们向服务器发送 Ajax 请求(这个URL可能要换成你自己服务器上的地址),获取新数据。一旦获取到了数据,就将其追加到容器中,页码加1,并将状态设置为已完成加载。

如果你想了解更多关于滚动事件的细节,可参考jQuery文档