החלף בין שכבות-על הקשריות להצגת רשימות של קישורים ועוד באמצעות הפלאגין הנפתח Bootstrap.
סקירה כללית
תפריטים נפתחים ניתנים להחלפה, שכבות על הקשריות להצגת רשימות קישורים ועוד. הם נעשים אינטראקטיביים עם תוסף ה-JavaScript הנפתח Bootstrap הכלול. הם מוחלפים על ידי לחיצה, לא על ידי ריחוף; זוהי החלטה עיצובית מכוונת .
תפריטים נפתחים בנויים על ספריית צד שלישי, Popper.js , המספקת מיקום דינמי וזיהוי נקודת מבט. הקפד לכלול popper.min.js לפני ה-JavaScript של Bootstrap או השתמש ב- bootstrap.bundle.min.js/ bootstrap.bundle.jsשמכיל את Popper.js. Popper.js אינו משמש למיקום תפריטים נפתחים בסרגלי ניווט, אם כי מיקום דינמי אינו נדרש.
אם אתה בונה את JavaScript שלנו מהמקור, זה דורשutil.js .
נְגִישׁוּת
תקן WAI ARIA מגדיר role="menu"ווידג'ט ממשי , אבל זה ספציפי לתפריטים דמויי אפליקציה שמפעילים פעולות או פונקציות. תפריטי ARIA יכולים להכיל רק פריטי תפריט, פריטי תפריט תיבת סימון, פריטי תפריט לחצני בחירה, קבוצות לחצני בחירה ותתי תפריטים.
התפריטים הנפתחים של Bootstrap, לעומת זאת, נועדו להיות כלליים וישימים למגוון מצבים ומבני סימון. לדוגמה, ניתן ליצור תפריטים נפתחים המכילים קלט ופקדים נוספים, כגון שדות חיפוש או טפסי התחברות. מסיבה זו, Bootstrap לא מצפה (וגם לא מוסיף אוטומטית) לאף אחת מהתכונות roleוהן aria-הנדרשות לתפריטי ARIA אמיתיים. המחברים יצטרכו לכלול את התכונות הספציפיות יותר הללו בעצמם.
עם זאת, Bootstrap מוסיף תמיכה מובנית לרוב האינטראקציות הסטנדרטיות בתפריט המקלדת, כגון היכולת לעבור בין .dropdown-itemאלמנטים בודדים באמצעות מקשי הסמן ולסגור את התפריט עם ESCהמקש.
דוגמאות
עטוף את הלחצן של התפריט הנפתח (הכפתור או הקישור שלך) ואת התפריט הנפתח בתוך .dropdown, או אלמנט אחר שמצהיר position: relative;. ניתן להפעיל תפריטים נפתחים מאלמנטים <a>או <button>אלמנטים שיתאימו טוב יותר לצרכים הפוטנציאליים שלך.
כפתור בודד
ניתן להפוך כל יחיד .btnלתפריט נפתח עם כמה שינויים בעיצוב. כך תוכל להפעיל אותם עם שני <button>האלמנטים:
באופן דומה, צור תפריטים נפתחים של כפתורים מפוצלים עם סימון כמעט זהה לתפריטים נפתחים של כפתורים בודדים, אך עם תוספת של .dropdown-toggle-splitמרווח מתאים סביב התפריט הנפתח.
אנו משתמשים במחלקה הנוספת הזו כדי להקטין את האופקי paddingמשני צדי ה-caret ב-25% ולהסיר את margin-leftהתוספת של כפתורים רגילים. השינויים הנוספים האלה שומרים על ה-caret במרכז בלחצן הפיצול ומספקים אזור פגיעה בגודל מתאים יותר ליד הכפתור הראשי.
מבחינה היסטורית תוכן התפריט הנפתח היה צריך להיות קישורים, אבל זה כבר לא המקרה עם v4. כעת אתה יכול להשתמש <button>באלמנטים בתפריטים הנפתחים שלך במקום רק ב- <a>s.
אתה יכול גם ליצור פריטים לא אינטראקטיביים עם .dropdown-item-text. אל תהסס לסגנן עוד יותר עם כלי עזר מותאמים אישית של CSS או טקסט.
כברירת מחדל, תפריט נפתח ממוקם באופן אוטומטי 100% מלמעלה ולאורך הצד השמאלי של ההורה שלו. הוסף לימין יישר .dropdown-menu-rightאת .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 בסרגלי ניווט.
באמצעות מאפייני נתונים או JavaScript, הפלאגין הנפתח מחליף תוכן מוסתר (תפריטים נפתחים) על ידי החלפת .showמחלקה בפריט רשימת האב. התכונה data-toggle="dropdown"מסתמכת על סגירת תפריטים נפתחים ברמת אפליקציה, לכן מומלץ להשתמש בה תמיד.
במכשירים התומכים במגע, פתיחת תפריט נפתח מוסיפה מטפלים ריקים ( $.noop) mouseoverלילדים המיידיים של <body>האלמנט. הפריצה המכוערת הזו, ללא ספק, נחוצה כדי לעקוף מוזרויות בהפצת האירועים של iOS , שאחרת תמנע מהקשה בכל מקום מחוץ לתפריט הנפתח להפעיל את הקוד שסוגר את התפריט הנפתח. לאחר סגירת התפריט הנפתח, mouseoverהמטפלים הריקים הנוספים הללו מוסרים.
באמצעות תכונות נתונים
הוסף data-toggle="dropdown"לקישור או כפתור כדי להחליף תפריט נפתח.
דרך JavaScript
התקשר לתפריטים הנפתחים באמצעות JavaScript:
data-toggle="dropdown"עדיין נדרש
לא משנה אם אתה קורא לתפריט הנפתח שלך באמצעות JavaScript או במקום זאת משתמש ב-data-api, data-toggle="dropdown"תמיד נדרש להיות נוכח ברכיב ההדק של התפריט הנפתח.
אפשרויות
ניתן להעביר אפשרויות באמצעות תכונות נתונים או JavaScript. עבור תכונות נתונים, הוסף את שם האפשרות ל- data-, כמו ב- data-offset="".
שֵׁם
סוּג
בְּרִירַת מֶחדָל
תיאור
לְקַזֵז
מספר | מחרוזת | פוּנקצִיָה
0
היסט של התפריט הנפתח ביחס ליעד שלה.
כאשר משתמשים בפונקציה לקביעת ההיסט, היא נקראת עם אובייקט המכיל את נתוני ההיסט כארגומנט הראשון שלה. הפונקציה חייבת להחזיר אובייקט בעל אותו מבנה. הצומת DOM הגורם המפעיל מועבר כארגומנט השני.
אפשר ל-Dropdown להתהפך במקרה של חפיפה ברכיב ההפניה. למידע נוסף, עיין במסמכי היפוך של Popper.js .
גְבוּל
מחרוזת | אֵלֵמֶנט
'סcrollPrent'
גבול אילוץ הצפת של התפריט הנפתח. מקבל את הערכים של 'viewport', 'window', 'scrollParent'או הפניה ל-HTMLElement (JavaScript בלבד). למידע נוסף עיין במסמכי preventOverflow של Popper.js .
התייחסות
מחרוזת | אֵלֵמֶנט
'לְמַתֵג'
רכיב התייחסות של התפריט הנפתח. מקבל את הערכים של 'toggle', 'parent', או הפניה ל-HTMLElement. למידע נוסף עיין ב-referensObject docs של Popper.js .
לְהַצִיג
חוּט
'דִינָמִי'
כברירת מחדל, אנו משתמשים ב-Popper.js למיקום דינמי. השבת את זה עם static.
שים לב כאשר boundaryמוגדר לערך כלשהו מלבד 'scrollParent', הסגנון position: staticמוחל על הכלי .dropdown.
שיטות
שיטה
תיאור
$().dropdown('toggle')
מחליף את התפריט הנפתח של סרגל ניווט נתון או ניווט עם כרטיסיות.
$().dropdown('show')
מציג את התפריט הנפתח של סרגל ניווט נתון או ניווט עם כרטיסיות.
$().dropdown('hide')
מסתיר את התפריט הנפתח של סרגל ניווט נתון או ניווט עם כרטיסיות.
$().dropdown('update')
מעדכן את המיקום של התפריט הנפתח של רכיב.
$().dropdown('dispose')
הורס את התפריט הנפתח של רכיב.
אירועים
כל אירועי התפריט הנפתח מופעלים על .dropdown-menuרכיב האב 's ויש להם relatedTargetמאפיין, שהערך שלו הוא רכיב העוגן המתחלף. hide.bs.dropdownולאירועים hidden.bs.dropdownיש clickEventמאפיין (רק כאשר סוג האירוע המקורי הוא click) המכיל אובייקט אירוע עבור אירוע הקליק.
מִקרֶה
תיאור
show.bs.dropdown
אירוע זה מופעל מיד כאשר קוראים לשיטת המופע של המופע.
shown.bs.dropdown
אירוע זה מופעל כאשר התפריט הנפתח הפך לגלוי למשתמש (יחכה למעברי CSS, כדי להשלים).
hide.bs.dropdown
אירוע זה מופעל מיד כאשר שיטת הסתר המופע נקראה.
hidden.bs.dropdown
אירוע זה מופעל כאשר הסתיימה התפריט הנפתח להסתרת מהמשתמש (יחכה למעברי CSS, כדי להשלים).