インターネットの継続的な発展に伴い、無限スクロールは現代の Web デザインの重要な要素になりました。無限スクロール効果は、ユーザー エクスペリエンスを向上させ、ユーザーが情報をより簡単に取得できるようにし、ユーザーの粘着性を高めるのに役立ちます。この記事では、ThinkPHP6 フレームワークを使用して無限スクロール効果を実現する方法を紹介します。
無限スクロールを実装する前に、まず jQuery フレームワークを導入する必要があります。 CDN を使用してアクセスを高速化することも、jQuery をローカルにダウンロードしてより安定したアクセスを取得することもできます。
HTML では、次の構造に従ってリストのテンプレートを定義する必要があります。 ,
#infinite-scroll は、リスト全体をラップするために使用される大きなコンテナーです。 #list
はデータを表示するために使用されるコンテナです。 #loading
は、読み込みプロンプトを表示するために使用されるコンテナです。
メソッドを使用します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:html;toolbar:false;'><div id="infinite-scroll">
<ul id="list">
<li>第一条数据</li>
<li>第二条数据</li>
<li>第三条数据</li>
...
</ul>
<div id="loading">Loading...</div>
</div></pre><div class="contentsignin">ログイン後にコピー</div></div>
リクエストが成功すると、JSON 形式のデータが返されます。
を通じて返されたデータを取得し、それをデータ コンテナーに追加できます。
メソッドを使用して無限スクロール効果を実現できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:jquery;toolbar:false;'>$.ajax({
url: "/path/to/server", // 请求的服务器地址
type: "POST", // 请求方式
data: {'last_id' : last_id}, // 最后一个数据的id
dataType: "json", // 数据类型
beforeSend: function () {
$("#loading").show(); // 显示加载提示
},
success: function (data) {
if(data.status == 200){
// 成功获取数据
var html = "";
$(data.data).each(function (index, item) {
html += '<li>' + item.title + '</li>';
});
$("#list").append(html); // 将获取的数据追加到列表中
last_id = data.last_id; // 更新最后一条数据的id
} else {
// 数据获取失败
alert(data.message);
}
},
complete: function () {
$("#loading").hide(); // 隐藏加载提示
},
error: function () {
alert("数据获取失败,请稍后重试");
}
});</pre><div class="contentsignin">ログイン後にコピー</div></div>
$(window).scroll(function () { if ($(document).scrollTop() + $(window).height() > $(document).height() - 100) { // 检测用户滚动到底部 loadMore(); } }); function loadMore() { $.ajax({ url: "/path/to/server", type: "POST", data: {'last_id' : last_id}, dataType: "json", beforeSend: function () { $("#loading").show(); // 显示加载提示 }, success: function (data) { if(data.status == 200){ // 成功获取数据 var html = ""; $(data.data).each(function (index, item) { html += '<li>' + item.title + '</li>'; }); $("#list").append(html); last_id = data.last_id; } else { // 数据获取失败 alert(data.message); } }, complete: function () { $("#loading").hide(); // 隐藏加载提示 }, error: function () { alert("数据获取失败,请稍后重试"); } }); }
コントローラーを定義するときは、まず対応するモデルを導入し、次にそのモデルを使用してデータベース内のデータを取得します。データを取得した後、データを JSON 形式にフォーマットしてフロントエンドに返す必要があります。
概要以上がThinkPHP6 を使用して無限スクロールを実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。