بوٹسٹریپ ڈراپ ڈاؤن پلگ ان کے ساتھ لنکس اور مزید کی فہرستیں دکھانے کے لیے سیاق و سباق کے اوورلیز کو ٹوگل کریں۔
جائزہ
ڈراپ ڈاؤنز ٹوگل کیے جا سکتے ہیں، لنکس کی فہرستیں اور مزید ڈسپلے کرنے کے لیے سیاق و سباق سے متعلق اوورلیز۔ وہ شامل بوٹسٹریپ ڈراپ ڈاؤن جاوا اسکرپٹ پلگ ان کے ساتھ انٹرایکٹو بنائے گئے ہیں۔ وہ کلک کرنے سے ٹوگل ہوتے ہیں، منڈلا کر نہیں۔ یہ ایک جان بوجھ کر ڈیزائن کا فیصلہ ہے۔
ڈراپ ڈاؤنز تیسری پارٹی کی لائبریری، Popper.js پر بنائے گئے ہیں ، جو متحرک پوزیشننگ اور ویو پورٹ کا پتہ لگاتی ہے۔ Bootstrap کے JavaScript سے پہلے popper.min.js کو شامل کرنا یقینی بنائیں یا استعمال کریں bootstrap.bundle.min.js/ bootstrap.bundle.jsجس میں Popper.js شامل ہو۔ Popper.js کا استعمال navbars میں ڈراپ ڈاؤن پوزیشن کے لیے نہیں کیا جاتا ہے حالانکہ متحرک پوزیشننگ کی ضرورت نہیں ہے۔
اگر آپ ہمارا جاوا اسکرپٹ ماخذ سے بنا رہے ہیں، تو اس کی ضرورت ہےutil.js ۔
رسائی
WAI ARIA معیار ایک حقیقی role="menu"ویجیٹ کی وضاحت کرتا ہے ، لیکن یہ ایپلیکیشن جیسے مینوز کے لیے مخصوص ہے جو اعمال یا افعال کو متحرک کرتے ہیں۔ ARIA مینو میں صرف مینو آئٹمز، چیک باکس مینو آئٹمز، ریڈیو بٹن مینو آئٹمز، ریڈیو بٹن گروپس، اور سب مینیو شامل ہو سکتے ہیں۔
دوسری طرف بوٹسٹریپ کے ڈراپ ڈاؤن کو عام اور مختلف حالات اور مارک اپ ڈھانچے پر لاگو کرنے کے لیے ڈیزائن کیا گیا ہے۔ مثال کے طور پر، ڈراپ ڈاؤنز بنانا ممکن ہے جس میں اضافی ان پٹ اور فارم کنٹرولز ہوں، جیسے کہ سرچ فیلڈز یا لاگ ان فارم۔ اس وجہ سے، بوٹسٹریپ حقیقی ARIA مینوز کے لیے درکار کسی بھی خصوصیت کی توقع نہیں کرتا (اور نہ ہی خود بخود شامل) role۔ مصنفین کو یہ مزید مخصوص اوصاف خود شامل کرنا ہوں گے۔aria-
تاہم، بوٹسٹریپ زیادہ تر معیاری کی بورڈ مینو کے تعاملات کے لیے بلٹ ان سپورٹ شامل کرتا ہے، جیسے .dropdown-itemکرسر کیز کا استعمال کرتے ہوئے انفرادی عناصر کے ذریعے منتقل ہونے اور ESCکلید کے ساتھ مینو کو بند کرنے کی صلاحیت۔
مثالیں
ڈراپ ڈاؤن کے ٹوگل (آپ کا بٹن یا لنک) اور ڈراپ ڈاؤن مینو کو اندر لپیٹیں .dropdown، یا کوئی اور عنصر جو اعلان کرتا ہے position: relative;۔ <a>آپ کی ممکنہ ضروریات کو بہتر طریقے سے فٹ کرنے کے لیے ڈراپ ڈاؤنز یا <button>عناصر سے متحرک کیا جا سکتا ہے۔
سنگل بٹن
کسی بھی سنگل .btnکو کچھ مارک اپ تبدیلیوں کے ساتھ ڈراپ ڈاؤن ٹوگل میں تبدیل کیا جا سکتا ہے۔ یہاں ہے کہ آپ انہیں کسی بھی <button>عناصر کے ساتھ کام کرنے کے لیے کیسے رکھ سکتے ہیں:
اسی طرح، اسپلٹ بٹن کے ڈراپ ڈاؤنز کو عملی طور پر سنگل بٹن ڈراپ ڈاؤن کی طرح ایک ہی مارک اپ کے ساتھ بنائیں، لیکن .dropdown-toggle-splitڈراپ ڈاؤن کیریٹ کے ارد گرد مناسب جگہ کے اضافے کے ساتھ۔
ہم اس اضافی کلاس کا استعمال paddingکیریٹ کے دونوں طرف کے افقی کو 25% تک کم کرنے کے لیے کرتے ہیں اور اس کو ہٹاتے ہیں margin-leftجو باقاعدہ بٹن ڈراپ ڈاؤن کے لیے شامل کیا جاتا ہے۔ وہ اضافی تبدیلیاں کیریٹ کو اسپلٹ بٹن میں مرکوز رکھتی ہیں اور مین بٹن کے آگے زیادہ مناسب سائز کا ہٹ ایریا فراہم کرتی ہیں۔
تاریخی طور پر ڈراپ ڈاؤن مینو کے مشمولات کو لنکس ہونا چاہیے تھا ، لیکن اب v4 کے ساتھ ایسا نہیں ہے۔ اب آپ اختیاری طور پر صرف s کے <button>بجائے اپنے ڈراپ ڈاؤن میں عناصر استعمال کر سکتے ہیں۔<a>
آپ نان انٹرایکٹو ڈراپ ڈاؤن آئٹمز بھی بنا سکتے ہیں .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۔
نوٹ کریں کہ آپ کو navbars میں ڈراپ ڈاؤن بٹنوں میں کوئی خاصیت شامل کرنے کی ضرورت نہیں ہے data-display="static"، کیونکہ Popper.js navbars میں استعمال نہیں ہوتا ہے۔
مینو کا مواد
ہیڈرز
کسی بھی ڈراپ ڈاؤن مینو میں کارروائیوں کے سیکشن کو لیبل کرنے کے لیے ایک ہیڈر شامل کریں۔
کسی بھی فریفارم ٹیکسٹ کو ڈراپ ڈاؤن مینو میں متن کے ساتھ رکھیں اور اسپیسنگ یوٹیلیٹیز استعمال کریں ۔ نوٹ کریں کہ مینو کی چوڑائی کو محدود کرنے کے لیے آپ کو ممکنہ طور پر اضافی سائز کے انداز کی ضرورت ہوگی۔
کچھ مثالی متن جو ڈراپ ڈاؤن مینو کے اندر آزادانہ بہاؤ ہے۔
اور یہ مزید مثالی متن ہے۔
فارمز
ڈراپ ڈاؤن مینو کے اندر ایک فارم ڈالیں، یا اسے ڈراپ ڈاؤن مینو میں بنائیں، اور اسے اپنی مطلوبہ منفی جگہ دینے کے لیے مارجن یا پیڈنگ یوٹیلیٹیز استعمال کریں۔
.showڈیٹا انتساب یا JavaScript کے ذریعے، ڈراپ ڈاؤن پلگ ان پیرنٹ لسٹ آئٹم پر کلاس کو ٹوگل کرکے پوشیدہ مواد (ڈراپ ڈاؤن مینوز) کو ٹوگل کرتا ہے ۔ ایپلیکیشن کی data-toggle="dropdown"سطح پر ڈراپ ڈاؤن مینو کو بند کرنے کے لیے خصوصیت پر انحصار کیا جاتا ہے، اس لیے اسے ہمیشہ استعمال کرنا اچھا خیال ہے۔
ٹچ فعال آلات پر، ڈراپ ڈاؤن کھولنے سے عنصر کے فوری بچوں میں خالی ( $.noop) mouseoverہینڈلرز شامل ہو جاتے ہیں۔ <body>یہ اعترافی طور پر بدصورت ہیک iOS کے ایونٹ ڈیلیگیشن میں ایک نرالا کام کرنے کے لیے ضروری ہے ، جو بصورت دیگر ڈراپ ڈاؤن کو بند کرنے والے کوڈ کو متحرک کرنے سے ڈراپ ڈاؤن کے باہر کہیں بھی ٹیپ کو روک دے گا۔ ڈراپ ڈاؤن بند ہونے کے بعد، یہ اضافی خالی mouseoverہینڈلرز ہٹا دیے جاتے ہیں۔
ڈیٹا اوصاف کے ذریعے
data-toggle="dropdown"ڈراپ ڈاؤن ٹوگل کرنے کے لیے کسی لنک یا بٹن میں شامل کریں ۔
جاوا اسکرپٹ کے ذریعے
جاوا اسکرپٹ کے ذریعے ڈراپ ڈاؤن کو کال کریں:
data-toggle="dropdown"اب بھی ضرورت ہے
اس سے قطع نظر کہ آپ اپنے ڈراپ ڈاؤن کو JavaScript کے ذریعے کال کرتے ہیں یا اس کے بجائے ڈیٹا-api استعمال کرتے ہیں، data-toggle="dropdown"ہمیشہ ڈراپ ڈاؤن کے محرک عنصر پر موجود ہونا ضروری ہے۔
اختیارات
اختیارات کو ڈیٹا انتساب یا JavaScript کے ذریعے منتقل کیا جا سکتا ہے۔ ڈیٹا کی خصوصیات کے لیے، آپشن کا نام شامل کریں data-، جیسا کہ میں data-offset=""۔
نام
قسم
طے شدہ
تفصیل
آفسیٹ
نمبر | تار | فنکشن
0
اس کے ہدف کے نسبت ڈراپ ڈاؤن کا آفسیٹ۔
جب کسی فنکشن کو آفسیٹ کا تعین کرنے کے لیے استعمال کیا جاتا ہے، تو اسے پہلی دلیل کے طور پر آفسیٹ ڈیٹا پر مشتمل آبجیکٹ کے ساتھ بلایا جاتا ہے۔ فنکشن کو ایک ہی ساخت کے ساتھ ایک آبجیکٹ کو لوٹانا چاہیے۔ محرک عنصر DOM نوڈ کو دوسری دلیل کے طور پر پاس کیا جاتا ہے۔
مزید معلومات کے لیے Popper.js کے آفسیٹ دستاویزات سے رجوع کریں ۔
پلٹائیں
بولین
سچ ہے
حوالہ عنصر پر اوورلیپنگ کی صورت میں ڈراپ ڈاؤن کو پلٹنے کی اجازت دیں۔ مزید معلومات کے لیے Popper.js کی فلپ دستاویزات دیکھیں ۔
حد
تار | عنصر
'اسکرول پیرنٹ'
ڈراپ ڈاؤن مینو کی اوور فلو رکاوٹ کی حد۔ 'viewport', 'window', 'scrollParent', یا HTMLElement حوالہ (صرف JavaScript) کی اقدار کو قبول کرتا ہے ۔ مزید معلومات کے لیے Popper.js کی روک تھام اوور فلو دستاویزات دیکھیں ۔
حوالہ
تار | عنصر
'ٹوگل'
ڈراپ ڈاؤن مینو کا حوالہ عنصر۔ 'toggle', 'parent', یا HTMLElement حوالہ کی اقدار کو قبول کرتا ہے ۔ مزید معلومات کے لیے Popper.js کے referenceObject docs سے رجوع کریں ۔
ڈسپلے
تار
'متحرک'
پہلے سے طے شدہ طور پر، ہم متحرک پوزیشننگ کے لیے 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
جب شو مثال کا طریقہ بلایا جاتا ہے تو یہ واقعہ فوراً فائر ہوجاتا ہے۔
shown.bs.dropdown
یہ ایونٹ اس وقت برطرف ہو جاتا ہے جب ڈراپ ڈاؤن صارف کے لیے مرئی ہو جاتا ہے (CSS ٹرانزیشن کے مکمل ہونے کا انتظار کرے گا)۔
hide.bs.dropdown
اس واقعہ کو فوری طور پر برطرف کر دیا جاتا ہے جب چھپائیں مثال کے طریقے کو بلایا جاتا ہے۔
hidden.bs.dropdown
یہ ایونٹ اس وقت فائر کیا جاتا ہے جب ڈراپ ڈاؤن صارف سے پوشیدہ ہو جاتا ہے (CSS ٹرانزیشن کے مکمل ہونے کا انتظار کریں گے)۔