当前位置:首页 > jquery

jquery上拉加载

2026-02-04 01:59:55jquery

jQuery 上拉加载实现方法

上拉加载是一种常见的分页加载技术,当用户滚动到页面底部时自动加载更多内容。以下是几种实现方式:

基础滚动监听实现

$(window).scroll(function() {
    if ($(window).scrollTop() + $(window).height() >= $(document).height() - 100) {
        loadMoreData();
    }
});

function loadMoreData() {
    // 防止重复加载
    if (isLoading) return;
    isLoading = true;

    $.ajax({
        url: 'your-api-url',
        type: 'GET',
        data: { page: nextPage },
        success: function(response) {
            // 追加新内容
            $('#container').append(response.html);
            nextPage++;
            isLoading = false;
        }
    });
}

使用Intersection Observer API(现代浏览器)

const observer = new IntersectionObserver((entries) => {
    if (entries[0].isIntersecting) {
        loadMoreData();
    }
}, {threshold: 0.1});

observer.observe($('#load-more-trigger')[0]);

优化版实现

var loading = false;
var lastPage = false;

$(window).scroll(function() {
    if (!loading && !lastPage && $(window).scrollTop() > $(document).height() - $(window).height() - 200) {
        loading = true;
        $('#loading-indicator').show();

        $.get('load-more.php', {page: nextPage})
            .done(function(data) {
                if (data.items.length === 0) {
                    lastPage = true;
                    $('#no-more-data').show();
                } else {
                    $('#items-container').append(data.html);
                    nextPage++;
                }
            })
            .always(function() {
                loading = false;
                $('#loading-indicator').hide();
            });
    }
});

插件推荐

  1. jQuery Infinite Scroll
    官方插件,简化实现过程:

    $('#container').infinitescroll({
        navSelector: ".pagination",
        nextSelector: ".pagination a.next",
        itemSelector: ".item",
        loading: {
            msgText: "加载中...",
            finishedMsg: "没有更多内容了"
        }
    });
  2. jScroll
    轻量级插件:

    $('#content').jscroll({
        loadingHtml: '<div class="loading">加载中...</div>',
        padding: 20,
        nextSelector: 'a.next:last'
    });

注意事项

  • 添加防抖机制避免频繁触发
  • 显示加载状态和没有更多数据的提示
  • 服务端需要支持分页查询
  • 移动端需要考虑触摸事件
  • 禁用加载时锁定滚动事件

完整示例通常包含:

  1. 滚动位置计算
  2. AJAX请求发送
  3. 新内容追加
  4. 状态管理(加载中/结束)
  5. 错误处理

jquery上拉加载

标签: 加载jquery
分享给朋友:

相关文章

react 如何引入jquery

react 如何引入jquery

安装 jQuery 库 在 React 项目中引入 jQuery 的第一步是安装 jQuery。可以通过 npm 或 yarn 安装: npm install jquery # 或 yarn a…

jquery下载

jquery下载

jQuery下载方法 官方下载渠道 访问jQuery官网(https://jquery.com/),点击页面中的“Download”按钮。提供两个版本选择: Production版本:压缩后的精…

jquery之家

jquery之家

jQuery之家相关资源 jQuery之家是一个提供jQuery插件、教程和资源的网站,适合开发者学习和使用jQuery技术。以下是关于jQuery之家的主要内容和资源: 网站内容 提供丰…

vue实现预加载

vue实现预加载

Vue 实现预加载的方法 预加载可以显著提升用户体验,减少页面切换时的等待时间。以下是几种在 Vue 中实现预加载的常见方法: 使用 preload 或 prefetch 标签 在构建工具(如 W…

jquery下载

jquery下载

jQuery下载方法 官方渠道下载 访问jQuery官网(https://jquery.com/),点击首页的“Download”按钮。页面提供两个版本: Production:压缩版(mini…

jquery之家

jquery之家

jQuery之家资源推荐 jQuery之家(通常指提供jQuery相关资源的网站或社区)是开发者获取插件、教程和代码示例的重要平台。以下是几个与jQuery相关的优质资源网站: 1. jQuery官…