با افزونه کشویی Bootstrap، همپوشانی های متنی را برای نمایش لیست پیوندها و موارد دیگر تغییر دهید.
بررسی اجمالی
کرکره ها همپوشانی های متنی و قابل تغییر برای نمایش لیست پیوندها و موارد دیگر هستند. آنها با افزونه جاوا اسکریپت کشویی Bootstrap تعاملی ساخته شده اند. آنها با کلیک کردن تغییر می کنند، نه با شناور کردن. این یک تصمیم طراحی عمدی است .
کرکرهها بر روی یک کتابخانه شخص ثالث به نام Popper.js ساخته شدهاند که موقعیتیابی پویا و شناسایی پورت دید را ارائه میدهد. حتماً popper.min.js را قبل از جاوا اسکریپت Bootstrap اضافه کنید یا از bootstrap.bundle.min.js/ bootstrap.bundle.jsکه حاوی Popper.js است استفاده کنید. Popper.js برای قرار دادن کرکرهها در نوارهای ناوبری استفاده نمیشود، اگرچه موقعیتیابی پویا لازم نیست.
اگر جاوا اسکریپت ما را از منبع میسازید، به آن نیاز داردutil.js .
دسترسی
استاندارد WAI ARIArole="menu" یک ویجت واقعی را تعریف می کند ، اما این ویژه منوهای برنامه مانندی است که اقدامات یا عملکردها را راه اندازی می کنند. منوهای ARIA فقط میتوانند شامل آیتمهای منو، آیتمهای منوی کادر انتخاب، آیتمهای منوی دکمههای رادیویی، گروههای دکمههای رادیویی و منوهای فرعی باشند.
از سوی دیگر، فهرستهای بازشوی Bootstrap به گونهای طراحی شدهاند که عمومی باشند و برای انواع موقعیتها و ساختارهای نشانهگذاری قابل استفاده باشند. به عنوان مثال، امکان ایجاد کرکرههایی وجود دارد که حاوی ورودیهای اضافی و کنترلهای فرم، مانند فیلدهای جستجو یا فرمهای ورود هستند. به همین دلیل، Bootstrap هیچ یک از ویژگی ها roleو aria-ویژگی های مورد نیاز برای منوهای ARIA واقعی را انتظار ندارد (و به طور خودکار اضافه نمی کند). نویسندگان باید خود این ویژگیهای خاصتر را لحاظ کنند.
با این حال، Bootstrap پشتیبانی داخلی را برای اکثر تعاملات استاندارد منوی صفحه کلید، مانند توانایی حرکت در .dropdown-itemعناصر جداگانه با استفاده از کلیدهای مکان نما و بستن منو با ESCکلید، اضافه می کند.
مثال ها
کلید کشویی (دکمه یا پیوند خود) و منوی کشویی را در داخل .dropdownیا عنصر دیگری که اعلان می کند ، بپیچید position: relative;. کرکره ها را می توان از <a>یا <button>عناصری فعال کرد تا بهتر با نیازهای بالقوه شما مطابقت داشته باشد.
تک دکمه
هر تکی .btnرا می توان با برخی تغییرات نشانه گذاری به یک ضامن کشویی تبدیل کرد. در اینجا نحوه قرار دادن آنها با هر یک از <button>عناصر آمده است:
به طور مشابه، کشویی دکمه های تقسیم را با نشانه گذاری تقریباً مشابه با منوهای کشویی تک دکمه ایجاد کنید، اما .dropdown-toggle-splitبرای ایجاد فاصله مناسب در اطراف کرکره کرکره ای به آن اضافه کنید.
ما از این کلاس اضافی برای کاهش padding25٪ افقی در دو طرف حفاظ استفاده می کنیم و آن را حذف می کنیم margin-leftکه برای کشویی دکمه های معمولی اضافه شده است. این تغییرات اضافی، حواشی را در مرکز دکمه تقسیم نگه می دارد و یک ناحیه ضربه با اندازه مناسب تری در کنار دکمه اصلی ایجاد می کند.
محتویات منوی کشویی از لحاظ تاریخی باید پیوند باشند، اما این دیگر در مورد نسخه 4 صدق نمی کند. اکنون میتوانید بهصورت اختیاری از <button>عناصر در فهرستهای کشویی خود بهجای <a>s استفاده کنید.
همچنین میتوانید آیتمهای کشویی غیرتعاملی را با .dropdown-item-text. با استفاده از CSS سفارشی یا ابزارهای متنی، راحت تر استایل کنید.
به طور پیش فرض، یک منوی کشویی به طور خودکار 100٪ از بالا و در امتداد سمت چپ والد خود قرار می گیرد. .dropdown-menu-rightبه a اضافه کنید .dropdown-menuتا منوی کشویی را تراز کنید.
سر بالا! کرکره ها به لطف Popper.js قرار می گیرند (به جز زمانی که در یک نوار ناوبری قرار دارند).
هم ترازی پاسخگو
اگر میخواهید از همترازی پاسخگو استفاده کنید، با افزودن data-display="static"ویژگی، موقعیت پویا را غیرفعال کنید و از کلاسهای تنوع پاسخگو استفاده کنید.
برای تراز کردن منوی کشویی به سمت راست با نقطه شکست داده شده یا بزرگتر، اضافه کنید .dropdown-menu{-sm|-md|-lg|-xl}-right.
برای تراز کردن منوی کشویی سمت چپ با نقطه شکست داده شده یا بزرگتر، .dropdown-menu-rightو اضافه کنید .dropdown-menu{-sm|-md|-lg|-xl}-left.
توجه داشته باشید که نیازی به افزودن data-display="static"ویژگی به دکمههای کشویی در نوارهای ناوبری ندارید، زیرا Popper.js در نوارهای ناوبری استفاده نمیشود.
محتوای منو
سرصفحه ها
در هر منوی کشویی، یک سرصفحه برای برچسب زدن بخشهای عملکردها اضافه کنید.
هر متن آزاد را در یک منوی کشویی با متن قرار دهید و از ابزارهای فاصله استفاده کنید . توجه داشته باشید که احتمالاً برای محدود کردن عرض منو به سبک های اندازه اضافی نیاز دارید.
چند متن نمونه که در منوی کشویی به صورت آزاد جریان دارد.
و این متن نمونه بیشتری است.
تشکیل می دهد
یک فرم را در یک منوی کشویی قرار دهید، یا آن را در یک منوی کشویی قرار دهید، و از ابزارهای حاشیه یا padding استفاده کنید تا فضای منفی مورد نیاز خود را به آن بدهید.
از طریق ویژگی های داده یا جاوا اسکریپت، افزونه کشویی محتوای پنهان (منوهای کشویی) را با تغییر دادن .showکلاس در آیتم لیست والد تغییر می دهد. این data-toggle="dropdown"ویژگی برای بستن منوهای کشویی در سطح برنامه مورد استفاده قرار می گیرد، بنابراین ایده خوبی است که همیشه از آن استفاده کنید.
در دستگاههای دارای قابلیت لمس، باز کردن یک منوی بازشو، کنترلکنندههای خالی ( $.noop) mouseoverرا به فرزندان اصلی <body>عنصر اضافه میکند. مسلماً این هک زشت برای حل یک اشتباه در نمایندگی رویداد iOS ضروری است ، که در غیر این صورت از ضربه زدن به هر جایی خارج از کرکره از راهاندازی کدی که فهرست کشویی را میبندد، جلوگیری میکند. پس از بسته شدن منوی بازشو، این کنترل کننده های خالی اضافی mouseoverحذف می شوند.
از طریق ویژگی های داده
data-toggle="dropdown"برای تغییر حالت کشویی به پیوند یا دکمه اضافه کنید.
از طریق جاوا اسکریپت
کشویی ها را از طریق جاوا اسکریپت فراخوانی کنید:
data-toggle="dropdown"هنوز مورد نیاز است
صرف نظر از اینکه از طریق جاوا اسکریپت کشویی خود را فراخوانی میکنید یا در عوض از data-api استفاده میکنید، data-toggle="dropdown"همیشه لازم است در عنصر ماشه کشویی وجود داشته باشد.
گزینه ها
گزینه ها را می توان از طریق ویژگی های داده یا جاوا اسکریپت منتقل کرد. data-برای ویژگی های داده، نام گزینه را به مانند در ضمیمه کنید data-offset="".
نام
تایپ کنید
پیش فرض
شرح
انحراف
شماره | رشته | عملکرد
0
افست کشویی نسبت به هدفش.
هنگامی که یک تابع برای تعیین افست استفاده می شود، با یک شی حاوی داده های افست به عنوان اولین آرگومان فراخوانی می شود. تابع باید یک شی با همان ساختار را برگرداند. گره DOM عنصر محرک به عنوان آرگومان دوم ارسال می شود.
مرز محدودیت سرریز منوی کشویی. مقادیر 'viewport', 'window', 'scrollParent'یا مرجع HTMLElement (فقط جاوا اسکریپت) را می پذیرد. برای اطلاعات بیشتر به اسناد preventOverflow Popper.js مراجعه کنید .
مرجع
رشته | عنصر
'تغییر وضعیت'
عنصر مرجع منوی کشویی. مقادیر 'toggle'، 'parent'یا یک مرجع HTMLElement را می پذیرد. برای کسب اطلاعات بیشتر به ReferenceObject Docs Popper.js مراجعه کنید.
نمایش دادن
رشته
پویا
به طور پیش فرض، ما از Popper.js برای موقعیت یابی پویا استفاده می کنیم. این را با غیر فعال کنید static.
توجه داشته باشید که وقتی boundaryروی هر مقداری غیر از ست تنظیم می شود 'scrollParent'، استایل روی ظرف position: staticاعمال می شود .dropdown.
مواد و روش ها
روش
شرح
$().dropdown('toggle')
منوی کشویی یک نوار ناوبری مشخص یا پیمایش تب شده را تغییر می دهد.
$().dropdown('show')
منوی کشویی یک نوار ناوبری مشخص یا پیمایش تب شده را نشان می دهد.
$().dropdown('hide')
منوی کشویی یک نوار ناوبری داده شده یا پیمایش تب شده را پنهان می کند.
$().dropdown('update')
موقعیت منوی کشویی یک عنصر را به روز می کند.
$().dropdown('dispose')
فهرست بازشوی یک عنصر را از بین می برد.
مناسبت ها
.dropdown-menuهمه رویدادهای کشویی در عنصر والد ' شلیک می شوند و دارای یک relatedTargetویژگی هستند که مقدار آن عنصر لنگر تغییر دهنده است. hide.bs.dropdownو hidden.bs.dropdownرویدادها دارای یک clickEventویژگی هستند (فقط زمانی که نوع رویداد اصلی باشد click) که حاوی یک شی رویداد برای رویداد کلیک است.
رویداد
شرح
show.bs.dropdown
این رویداد بلافاصله با فراخوانی متد show instance فعال می شود.
shown.bs.dropdown
این رویداد زمانی فعال می شود که کشویی برای کاربر قابل مشاهده باشد (برای تکمیل شدن CSS منتظر می ماند).
hide.bs.dropdown
این رویداد بلافاصله پس از فراخوانی متد hide instance فعال می شود.
hidden.bs.dropdown
این رویداد زمانی فعال میشود که مخفی شدن فهرست کشویی از کاربر به پایان برسد (برای تکمیل شدن CSS منتظر میماند).