دکمه «بارگیری بیشتر» با کلیک کاربر، محتوای بیشتری را به صفحه اضافه می کند. این یک رویکرد رایج برای وبلاگ ها است زیرا به کاربر اجازه می دهد تصمیم بگیرد چگونه و چه زمانی اطلاعات نمایش داده شود.

در اینجا نگاهی به محصول نهایی داریم که امروز روی آن کار خواهیم کرد – به پایین قلم بروید و روی دکمه کلیک کنید تا محتوای بیشتری به صفحه اضافه کنید:

1. ظرف کارت و دکمه HTML

ما با قرار دادن ظرف کارت های خود در صفحه شروع می کنیم. ما کارت ها را با استفاده از جاوا اسکریپت به ظرف اضافه می کنیم تا div خالی شود.

اجرای ما شامل دکمه “بارگذاری بیشتر” است و همچنین تعداد کارت های فعلی و تعداد کل کارت های موجود را نمایش می دهد. ما این ویژگی ها را در یک card-actions بخش مطالب در card-count و card-total با جاوا اسکریپت اضافه خواهد شد.

2. شکل دادن به کارت ها و دکمه

کارت‌هایی که به بخش کارت-کانتینر اضافه می‌کنیم، نام کلاسی «کارت» خواهند داشت.

ما سبک خود را load-more به روشی مشابه کارت ها را فشار دهید و یک شبه انتخابگر غیرفعال اضافه کنید تا نشان دهد چه زمانی به پایان کارت ها رسیده اند.

3. افزودن عملکرد با جاوا اسکریپت

پیاده سازی عملکردی برای دکمه load more به این صورت است:

  1. هر بار که کاربر روی دکمه کلیک می کند، تعدادی کارت به صفحه اضافه کنید.
  2. تشخیص دهید چه زمانی تعداد کل کارت ها اضافه شده است و دکمه را غیرفعال کنید.

تعریف ثابت ها

ابتدا، تمام عناصر مورد نیاز خود را از DOM خود دریافت کنید:

اکنون باید متغیرهای جهانی خود را تعریف کنیم.

ما به یک مقدار برای حداکثر تعداد کارتهایی که باید به صفحه اضافه شوند نیاز داریم. اگر داده های خود را از سرور دریافت می کنید، این مقدار طول پاسخ سرور است. بیایید یک محدودیت کارت 99 را مقداردهی اولیه کنیم.

را cardTotalElem عنصری برای نمایش حداکثر تعداد کارت در صفحه است تا بتوانیم آن را تنظیم کنیم innerHTML به cardLimit ارزش؛

سپس یک متغیر برای تعداد کارت هایی که می خواهیم صفحه را افزایش دهیم تعریف می کنیم:

دقیقاً مانند آموزش اسکرول بی‌نهایت ما، می‌خواهیم بدانیم چند “صفحه” خواهیم داشت، یعنی چند بار می‌توانیم محتوا را افزایش دهیم تا به حداکثر محدودیت برسیم. به عنوان مثال، با تعریف ما cardLimit و cardIncrease متغیرها، می‌توانیم محتوا را 10 برابر افزایش دهیم (با فرض اینکه 9 عنصر اول را قبلاً بارگذاری کرده‌ایم) تا زمانی که به حد مجاز برسیم. ما این کار را با تقسیم کردن انجام خواهیم داد cardLimit توسط cardIncrease.

سپس مقداری را برای تعیین اینکه در کدام صفحه هستیم تعریف می کنیم:

ایجاد یک کارت جدید

اکنون همه ثابت های خود را داریم، بیایید یک تابع ایجاد کنیم تا یک کارت جدید به ظرف کارت اضافه کنیم. را تنظیم می کنیم innerHTML از کارت های ما به مقدار شاخص، بنابراین ما می توانیم تعداد کارت هایی را که اضافه می کنیم پیگیری کنیم.

یکی از ویژگی های سرگرم کننده در این نسخه ی نمایشی این است که هر کارت یک رنگ پس زمینه به طور تصادفی ایجاد می کند.

ما همچنین می توانیم این تابع را برای خود اعمال کنیم load-more دکمه در بارگذاری صفحه برای دادن رنگ پس زمینه تصادفی نیز به آن:

اضافه کردن کارت به کانتینر

کارت‌های خود را با استفاده از عملکردی مشابه آنچه در آموزش پیمایش بی‌نهایت استفاده کرده‌ایم به ظرف خود اضافه می‌کنیم.

ابتدا محدوده کارت هایی که باید به صفحه اضافه شوند را مشخص کنید. را addCards تابع a را می پذیرد pageIndex پارامتر، که جهانی را به روز می کند currentPage ارزش. اگر در صفحه 1 هستیم، کارت های 1 تا 9 را اضافه می کنیم. اگر در صفحه 2 هستیم، کارت های 10 تا 18 و غیره را اضافه می کنیم.

از نظر ریاضی می توانیم آن را به صورت زیر تعریف کنیم:

در این تابع، محدوده شروع ما همیشه یک کمتر از مقداری است که می‌خواهیم به دست آوریم (یعنی در صفحه 1، محدوده شروع 0 است، در صفحه 2، محدوده شروع 9 است) بنابراین ما آن را محاسبه می‌کنیم. با تنظیم مقدار شاخص حلقه for ما به startRange + 1.

تشخیص زمانی که به محدودیت کارت رسیده است

محدودیتی که باید به آن توجه کنیم این است endRange عدد. اگر در صفحه آخر هستیم، می‌خواهیم محدوده پایانی ما مانند صفحه باشد cardLimit. به عنوان مثال، اگر ما یک cardLimit از 75 و الف cardIncrease از 10 و ما در صفحه 8 هستیم startRange خواهد شد 70 و ما endRange مقدار باید 75 باشد.

ما خود را اصلاح خواهیم کرد addCards تابع برای محاسبه این:

نسخه ی نمایشی ما همچنین شامل یک cardTotal عنصری که تعداد کارت هایی را که در حال حاضر در صفحه نشان داده شده اند نشان می دهد، بنابراین ما آن را تنظیم می کنیم innerHTML این عنصر به عنوان محدوده پایانی.

نکته دیگری که باید به آن توجه کنید، غیرفعال کردن دکمه بارگذاری بیشتر است cardLimit رسیده است. می توانیم الف را تعریف کنیم handleButtonStatus برای تعیین اینکه آیا دکمه را غیرفعال کنید، یعنی زمانی که currentPage برابر است با cardLimit:

سپس این تابع جدید را به ما منتقل می کنیم addCards عملکرد:

بارگیری کارت های اولیه

ما یک ویژگی برای افزودن کارت به کانتینر تعریف کرده‌ایم، بنابراین ما را به‌روزرسانی می‌کنیم window.onload عملکردی برای تنظیم کارت های اولیه برای اضافه شدن به صفحه.

حمل بار بیشتر

ما اضافه کردن محتوا را با افزایش آن انجام خواهیم داد currentPage هر بار با 1 عدد بارگذاری بیشتر دکمه کلیک می شود. از آنجایی که ما قبلاً تمام بررسی های حد را در خود اضافه کرده ایم addCards تابع، ما نیازی به بررسی دیگری در رویداد کلیک خود نخواهیم داشت.

نتیجه

و ما تمام شدیم! ما با موفقیت یک ویژگی دکمه “بارگذاری بیشتر” را در صفحه وب خود اجرا کردیم!