آموزش Offcanvas در بوت استرپ

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

از این قابلیت معمولا برای ساخت منوی ناوبری، پنل های محتوایی یا نمایش اطلاعات تکمیلی استفاده می‌شود؛ بدون آن که فضای کامل صفحه را اشغال کند.

مروری بر قابلیت های Offcanvas در بوت استرپ

در ادامه، ویژگی های اصلی کامپوننت Offcanvas را مشاهده می‌کنید. یادگیری این قابلیت یکی از بخش های مهم در آموزش طراحی سایت با بوت استرپ محسوب می‌شود، زیرا به شما امکان می‌دهد تجربه کاربری بهتری در صفحات واکنش گرا ارائه دهید:

  • فعال سازی: برای باز یا بسته کردن پنل Offcanvas می‌توانید از دکمه تغییر وضعیت (Toggle) یا یک لینک استفاده کنید. این کار با کمک جاوا اسکریپت یا ویژگی های داده ای (data attributes) انجام می‌شود.
  • موقعیت: شما می‌توانید این پنل را در سمت چپ، راست، بالا یا پایین صفحه قرار دهید. این انتخاب به نیازهای طراحی بستگی دارد.
  • محتوا: می‌توانید انواع محتوای HTML دلخواه را داخل این پنل قرار دهید. برای نمونه: منوی ناوبری، متن، تصویر، فرم یا سایر کامپوننت ها.
  • دسترس پذیری: بوت استرپ این کامپوننت را با نرم افزارهای صفحه خوان (Screen Readers) و ناوبری با صفحه کلید سازگار طراحی کرده است. این موضوع باعث می‌شود کامپوننت با استانداردهای دسترس پذیری هماهنگ باشد.
  • رفتار واکنش گرا: کامپوننت Offcanvas به طور پیش فرض واکنش گرا است. این پنل به خوبی با اندازه های مختلف صفحه سازگار می‌شود. در صفحه های کوچک تر می‌توانید آن را به تمام صفحه تبدیل کنید. همچنین امکان فعال کردن اسکرول داخلی وجود دارد.
  • رویدادها: بوت استرپ مجموعه ای از رویدادهای جاوا اسکریپت برای این کامپوننت ارائه می‌دهد. با این رویدادها می‌توانید هنگام باز یا بسته شدن پنل، کدهای دلخواه اجرا کنید. به این ترتیب می‌توانید رفتار پنل را سفارشی سازی نمایید.

استفاده از این کامپوننت به شما کمک می‌کند پنل های کشویی را با سهولت بیشتری طراحی کنید. همچنین با بهینه سازی تجربه کاربری در دستگاه های موبایل، به شما این امکان را می‌دهد که محتوای اضافی یا گزینه های ناوبری را به شکلی منظم و کارآمد نمایش دهید، بدون آن که صفحه اصلی بیش از حد شلوغ به نظر برسد.

نکته: همانند مدال ها (Modals)، در هر زمان فقط یک Offcanvas می‌تواند روی صفحه فعال باشد.

کامپوننت های Offcanvas

کامپوننت های زیر با یکدیگر همکاری می‌کنند تا امکان ایجاد Offcanvas در بوت استرپ را فراهم کنند. به این ترتیب می‌توانید پنل های کشویی طراحی کنید که با کلیک روی یک دکمه تغییر وضعیت (Toggle) یا یک لینک ظاهر می‌شوند و محتوای اضافی یا گزینه های ناوبری را نمایش می‌دهند:

  • دکمه تغییر وضعیت (Toggle button) یا عنصر محرک (Trigger element)

  • محفظه پنل Offcanvas

  • پنل Offcanvas

  • موقعیت پنل Offcanvas

  • دکمه بستن Offcanvas 

  • جاوا اسکریپت و ویژگی های داده ای (data attributes)

اکنون بیایید یک مثال ساده را بررسی کنیم:

Offcanvas ساده در بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

دمو زنده

شما می‌توانید رفتار کامپوننت Offcanvas را به کمک کلاس های CSS کنترل کنید. این کامپوننت بر اساس وضعیت کلاس ها، به صورت مخفی یا نمایان نمایش داده می‌شود:

  • .offcanvas (حالت پیش فرض) -> محتوای پنل را مخفی می‌کند.

  • .offcanvas.show -> محتوای پنل را نمایش می‌دهد.

در واقع، با اضافه یا حذف کردن کلاس .show، می‌توانید وضعیت باز یا بسته بودن پنل Offcanvas را تعیین کنید.

اکنون بیایید یک مثال ساده را مشاهده کنیم:

دمو زنده در Offcanvas بوت استرپ

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

اسکرول بدنه (Body Scrolling)

زمانی که یک کامپوننت Offcanvas به همراه پس زمینه تار (Backdrop) فعال است، امکان اسکرول کردن عنصر <body> وجود ندارد.
بوت استرپ به صورت پیش فرض اسکرول صفحه اصلی را در این حالت غیرفعال می‌کند.

اگر بخواهید هنگام نمایش Offcanvas، همچنان امکان اسکرول کردن بدنه صفحه را داشته باشید، می‌توانید از ویژگی data-bs-scroll استفاده کنید.

اکنون بیایید یک مثال از این قابلیت را ببینیم:

اسکرول بدنه در زمان فعال بودن Offcanvas

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

اسکرول بدنه همراه با پس زمینه تار (Backdrop)

شما می‌توانید اسکرول بدنه صفحه (<body>) را فعال کنید، در حالی که پس زمینه تار (Backdrop) همچنان روی صفحه قابل مشاهده باشد.

اکنون بیایید یک مثال از این حالت را بررسی کنیم:

اسکرول بدنه همراه با پس زمینه تار

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

پس زمینه ایستا (Static Backdrop)

زمانی که پس زمینه (Backdrop) در کامپوننت Offcanvas روی حالت Static تنظیم می‌شود، با کلیک روی ناحیه بیرون از پنل، پنل بسته نخواهد شد.

اکنون بیایید یک مثال از این قابلیت را مشاهده کنیم:

پس زمینه ایستا Backdrop در کامپوننت Offcanvas

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

Offcanvas دارک در بوت استرپ

از نسخه ۵.۳.۰ به بعد، بوت استرپ استفاده از نسخه های دارک برای کامپوننت ها را منسوخ کرده است. دلیل این تغییر، اضافه شدن قابلیت حالت های رنگی می‌باشد.

به جای اضافه کردن کلاس های دارک به صورت دستی، توصیه می‌شود از ویژگی data-bs-theme="dark" استفاده کنید. می‌توانید این ویژگی را به عنصر ریشه، عنصر والد یا خود کامپوننت Offcanvas اعمال کنید.

کلاس های واکنش گرا در Offcanvas

کلاس های واکنش گرا (Responsive) در Offcanvas به شما اجازه می‌دهند محتوای پنل را از یک نقطه شکست مشخص به پایین، پنهان کنید. در مقابل، در صفحه هایی با اندازه بزرگتر از آن Breakpoint، این محتوا به صورت عادی نمایش می یابد.

برای مثال، اگر از کلاس .offcanvas-lg استفاده کنید:

  • در اندازه صفحه کوچکتر از Breakpoint lg -> محتوا به صورت Offcanvas (مخفی و قابل باز شدن) نمایش داده می‌شود.

  • در اندازه صفحه بزرگتر از Breakpoint lg -> محتوا به صورت عادی و بدون Offcanvas نمایش داده می‌شود.

نکته: برای مشاهده رفتار واکنش گرا، باید اندازه پنجره مرورگر خود را تغییر دهید.

اکنون بیایید یک مثال از این قابلیت ها را بررسی کنیم:

کلاس های واکنش گرا در Offcanvas

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

کلاس های مربوط به Offcanvas در تمام Breakpoint ها در دسترس هستند. با استفاده از این کلاس ها می‌توانید مشخص کنید Offcanvas در چه اندازه صفحه ای فعال شود:

  • .offcanvas

  • .offcanvas-sm

  • .offcanvas-md

  • .offcanvas-lg

  • .offcanvas-xl

  • .offcanvas-xxl

موقعیت Offcanvas در بوت استرپ

برای تعیین موقعیت نمایش Offcanvas، باید یکی از کلاس های موقعیت دهی (Modifier Classes) را به کامپوننت اضافه کنید.
توجه داشته باشید که برای Offcanvas، موقعیت پیش فرض وجود ندارد و شما باید آن را مشخص کنید.

در ادامه می‌توانید گزینه های موجود برای تعیین موقعیت Offcanvas را مشاهده کنید:

  • .offcanvas-start → Offcanvas را در سمت چپ صفحه (Viewport) قرار می‌دهد.

  • .offcanvas-end → Offcanvas را در سمت راست صفحه قرار می‌دهد.

  • .offcanvas-top → Offcanvas را در بالای صفحه قرار می‌دهد.

  • .offcanvas-bottom → Offcanvas را در پایین صفحه قرار می‌دهد.

اکنون بیایید یک مثال از موقعیت Top (بالا) را بررسی کنیم:

موقعیت Top در Offcanvas

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

اکنون بیایید یک مثال از موقعیت Right (سمت راست) را بررسی کنیم:

موقعیت Right در Offcanvas

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

اکنون بیایید یک مثال از موقعیت Bottom (پایین صفحه) را بررسی کنیم:

موقعیت Bottem در Offcanvas

با کپی کردن کد بالا در ویرایشگر آنلاین، میتوانید آن را اجرا کنید.

آنلاین امتحان کنید

دسترس پذیری Offcanvas در بوت استرپ

برای رعایت اصول دسترس پذیری، حتما باید در عنصر .offcanvas ویژگی aria-labelledby="..." را اضافه کنید. این ویژگی باید به عنوان Offcanvas اشاره کند. دلیل این کار این است که پنل Offcanvas از نظر مفهومی مشابه یک دیالوگ مدال (Modal Dialog) عمل می‌کند. همچنین نیازی نیست ویژگی role="dialog" را به صورت دستی اضافه کنید؛ چون جاوا اسکریپت به طور خودکار این ویژگی را به کامپوننت اضافه می‌کند.

5/5 - (2 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

آموزش پروژه محور طراحی سایت با پایتون و جنگو مختص بازار کار
  • انتشار: ۱۷ خرداد ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید