登录
首页 >  文章 >  前端

使用 Laravel 和 jQuery 实现无限滚动

来源:dev.to

时间:2024-11-29 13:10:40 153浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《使用 Laravel 和 jQuery 实现无限滚动》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

使用 Laravel 和 jQuery 实现无限滚动

与传统分页相比,无限滚动提供了一种更现代、更流畅的数据加载方式。当用户向下滚动页面时,新数据会自动加载,而不是单击分页链接。

先决条件

  • laravel 和 jquery 的基础知识。
  • 具有分页模型的 laravel 项目(例如,用户)。

第 1 步:设置 laravel 进行分页

首先,设置控制器来处理分页:

// in your usercontroller
public function index(request $request)
{
    $users = user::paginate(10); // paginate the results, 10 per page

    if ($request->ajax()) {
        return view('users.partials.users_list', compact('users'))->render();
    }

    return view('users.index', compact('users'));
}

第 2 步:创建视图

创建视图来显示分页数据:

资源/视图/用户/index.blade.php

@extends('layouts.app')

@section('content')
<div id="user-list">
    @include('users.partials.users_list', ['users' => $users])
</div>
<div id="loading" style="text-align:center; display:none;">
    <p>loading more users...</p>
</div>
@endsection

资源/视图/用户/partials/users_list.blade.php

@foreach($users as $user)
<tr>
    <td>{{ $user->name }}</td>
    <td>{{ $user->email }}</td>
</tr>
@endforeach

第 3 步:实现无限滚动的 jquery

现在,修改你的 jquery 脚本以支持无限滚动:
public/js/infinite-scroll.js

$(document).ready(function() {
    let page = 1;

    $(window).scroll(function() {
        if ($(window).scrolltop() + $(window).height() >= $(document).height() - 100) {
            page++;
            loadmoredata(page);
        }
    });

    function loadmoredata(page) {
        $.ajax({
            url: '?page=' + page,
            method: 'get',
            beforesend: function() {
                $('#loading').show();
            },
            success: function(data) {
                if (data.trim() === "") {
                    return;
                }
                $('#loading').hide();
                $('#user-list').append(data);
            },
            error: function(xhr) {
                console.log(xhr.responsetext);
            }
        });
    }
});

将此脚本包含在您的主视图中:

@section('scripts')
<script src="{{ asset('js/infinite-scroll.js') }}"></script>
@endsection`

通过使用 laravel 和 jquery 实现无限滚动,可以提供更流畅的用户体验。这种方法消除了分页链接的需要,并在用户滚动时自动加载内容。

尽情享受!

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>