ჩამოსაშლელები
გადართეთ კონტექსტური გადაფარვები ბმულების სიების საჩვენებლად და სხვა Bootstrap ჩამოსაშლელი მოდულით.
ჩამოსაშლელები არის გადართვადი, კონტექსტური გადაფარვები ბმულების სიების საჩვენებლად და სხვა. ისინი ინტერაქტიულია ჩართული Bootstrap ჩამოსაშლელი JavaScript მოდულით. მათი გადართვა ხდება დაწკაპუნებით და არა მატრიცით; ეს არის მიზანმიმართული დიზაინის გადაწყვეტილება.
ჩამოსაშლელი ფაილები აგებულია მესამე მხარის ბიბლიოთეკაზე, Popper.js , რომელიც უზრუნველყოფს დინამიურ პოზიციონირებას და ხედვის პორტის ამოცნობას. დარწმუნდით, რომ ჩართეთ popper.min.js Bootstrap-ის JavaScript-მდე ან გამოიყენეთ bootstrap.bundle.min.js
/ bootstrap.bundle.js
რომელიც შეიცავს Popper.js-ს. Popper.js არ გამოიყენება ჩამოსაშლელი ფაილების პოზიციონირებისთვის navbars-ში, თუმცა დინამიური პოზიციონირება არ არის საჭირო.
თუ თქვენ აშენებთ ჩვენს JavaScript-ს წყაროდან, ის მოითხოვსutil.js
.
WAI ARIA სტანდარტი განსაზღვრავს რეალურ role="menu"
ვიჯეტს , მაგრამ ეს სპეციფიკურია აპლიკაციის მსგავსი მენიუებისთვის, რომლებიც ახდენენ მოქმედებებს ან ფუნქციებს. ARIA მენიუები შეიძლება შეიცავდეს მხოლოდ მენიუს ელემენტებს, მონიშვნის ველის მენიუს ელემენტებს, რადიო ღილაკების მენიუს ელემენტებს, რადიოს ღილაკების ჯგუფებს და ქვემენიუებს.
მეორეს მხრივ, Bootstrap-ის ჩამოსაშლელი ფაილები შექმნილია როგორც ზოგადი და გამოსაყენებელი სხვადასხვა სიტუაციებისა და მარკირების სტრუქტურებისთვის. მაგალითად, შესაძლებელია ჩამოსაშლელი ფანჯრების შექმნა, რომლებიც შეიცავენ დამატებით შენატანს და ფორმის კონტროლს, როგორიცაა საძიებო ველები ან შესვლის ფორმები. ამ მიზეზით, Bootstrap არ მოელის (არც ავტომატურად დაამატებს) რომელიმე ატრიბუტს role
, aria-
რომელიც საჭიროა ნამდვილი ARIA მენიუსთვის. ავტორებმა თავად უნდა შეიტანონ ეს უფრო კონკრეტული ატრიბუტები.
თუმცა, Bootstrap ამატებს ჩაშენებულ მხარდაჭერას კლავიატურის მენიუს უმეტესი სტანდარტული ურთიერთქმედებისთვის, როგორიცაა ცალკეულ .dropdown-item
ელემენტებში გადაადგილების შესაძლებლობა კურსორის ღილაკების გამოყენებით და მენიუს დახურვა ღილაკით ESC.
ჩაალაგეთ ჩამოსაშლელი გადამრთველი (თქვენი ღილაკი ან ბმული) და ჩამოსაშლელი მენიუ შიგნით .dropdown
ან სხვა ელემენტში, რომელიც აცხადებს position: relative;
. ჩამოსაშლელი ღილაკები შეიძლება გააქტიურდეს <a>
ან <button>
ელემენტებიდან, რათა უკეთ მოერგოს თქვენს პოტენციურ საჭიროებებს.
ნებისმიერი სინგლი .btn
შეიძლება გადაიზარდოს ჩამოსაშლელ გადამრთველად გარკვეული მარკირების ცვლილებებით. აი, როგორ შეგიძლიათ მათი მუშაობა რომელიმე <button>
ელემენტთან:
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown button
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
და <a>
ელემენტებით:
<div class="dropdown show">
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown link
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
საუკეთესო ნაწილი ის არის, რომ ამის გაკეთება შეგიძლიათ ნებისმიერი ღილაკის ვარიანტით, ასევე:
ანალოგიურად, შექმენით გაყოფილი ღილაკების ჩამოსაშლელები ფაქტობრივად იგივე მარკირებით, როგორც ერთი ღილაკის ჩამოსაშლელი ღილაკები, მაგრამ .dropdown-toggle-split
ჩამოსაშლელი კარტის ირგვლივ სათანადო ინტერვალის დამატებით.
ჩვენ ვიყენებთ ამ დამატებით კლასს, რათა შევამციროთ ჰორიზონტალური padding
ზოლის ორივე მხარეს 25%-ით და წავშალოთ ის, margin-left
რაც დამატებულია ღილაკების რეგულარული ჩამოსაშლელებისთვის. ეს დამატებითი ცვლილებები ინარჩუნებს კარტს ორიენტირებული გაყოფის ღილაკზე და უზრუნველყოფს უფრო სათანადო ზომის დარტყმის ზონას მთავარი ღილაკის გვერდით.
ღილაკების ჩამოსაშლელები მუშაობს ყველა ზომის ღილაკებით, ნაგულისხმევი და გაყოფილი ჩამოსაშლელი ღილაკების ჩათვლით.
ელემენტების ზემოთ ჩამოსაშლელი მენიუების ჩართვა .dropup
მშობელ ელემენტში დამატებით.
ჩართეთ ჩამოსაშლელი მენიუები ელემენტების მარჯვნივ, .dropright
მშობელ ელემენტზე დამატებით.
ჩართეთ ჩამოსაშლელი მენიუები ელემენტების მარცხნივ, .dropleft
მშობელ ელემენტზე დამატებით.
ისტორიულად ჩამოსაშლელი მენიუს შიგთავსი უნდა იყოს ბმულები, მაგრამ ეს აღარ არის საქმე v4-ში. ახლა თქვენ შეგიძლიათ სურვილისამებრ გამოიყენოთ <button>
ელემენტები თქვენს ჩამოსაშლელ სიაში მხოლოდ <a>
s-ის ნაცვლად.
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
ნაგულისხმევად, ჩამოსაშლელი მენიუ ავტომატურად განლაგებულია 100%-ით ზემოდან და მისი მშობლის მარცხენა მხარეს. დაამატეთ .dropdown-menu-right
a- .dropdown-menu
ში მარჯვნივ გასწორება ჩამოსაშლელი მენიუში.
Თავები მაღლა! ჩამოსაშლელი ფაილები განლაგებულია Popper.js-ის წყალობით (გარდა იმ შემთხვევებისა, როდესაც ისინი შეიცავს navbar-ში).
<div class="btn-group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Right-aligned menu
</button>
<div class="dropdown-menu dropdown-menu-right">
<button class="dropdown-item" type="button">Action</button>
<button class="dropdown-item" type="button">Another action</button>
<button class="dropdown-item" type="button">Something else here</button>
</div>
</div>
დაამატეთ სათაური მოქმედებების სექციების ლეიბლისთვის ნებისმიერ ჩამოსაშლელ მენიუში.
<div class="dropdown-menu">
<h6 class="dropdown-header">Dropdown header</h6>
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
</div>
გამოყავით დაკავშირებული მენიუს ელემენტების ჯგუფები გამყოფით.
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Separated link</a>
</div>
განათავსეთ ფორმა ჩამოსაშლელ მენიუში, ან გადააქციეთ ის ჩამოსაშლელ მენიუში და გამოიყენეთ ზღვრული ან padding უტილიტები , რომ მისცეთ მას თქვენთვის საჭირო უარყოფითი სივრცე.
<div class="dropdown-menu">
<form class="px-4 py-3">
<div class="form-group">
<label for="exampleDropdownFormEmail1">Email address</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail1" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword1">Password</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword1" placeholder="Password">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck">
<label class="form-check-label" for="dropdownCheck">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">New around here? Sign up</a>
<a class="dropdown-item" href="#">Forgot password?</a>
</div>
<form class="dropdown-menu p-4">
<div class="form-group">
<label for="exampleDropdownFormEmail2">Email address</label>
<input type="email" class="form-control" id="exampleDropdownFormEmail2" placeholder="[email protected]">
</div>
<div class="form-group">
<label for="exampleDropdownFormPassword2">Password</label>
<input type="password" class="form-control" id="exampleDropdownFormPassword2" placeholder="Password">
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dropdownCheck2">
<label class="form-check-label" for="dropdownCheck2">
Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
დაამატეთ .active
ერთეულებს ჩამოსაშლელ სიაში, რათა გაააქტიუროთ ისინი .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item active" href="#">Active link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
დაამატეთ .disabled
ერთეულებს ჩამოსაშლელ სიაში, რათა სტილი გამორთული იყოს .
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Regular link</a>
<a class="dropdown-item disabled" href="#">Disabled link</a>
<a class="dropdown-item" href="#">Another link</a>
</div>
მონაცემთა ატრიბუტების ან JavaScript-ის საშუალებით ჩამოსაშლელი დანამატი გადართავს ფარულ შინაარსს (ჩამოშლელ მენიუებს) .show
კლასის გადართვით მშობელი სიის ელემენტზე. data-toggle="dropdown"
ატრიბუტს ეყრდნობა ჩამოსაშლელი მენიუების დახურვისთვის აპლიკაციის დონეზე, ამიტომ კარგი იდეაა მისი ყოველთვის გამოყენება .
შეხებით ჩართულ მოწყობილობებზე, ჩამოსაშლელი მენიუს გახსნა ელემენტის უშუალო შვილებს ემატება ცარიელი ( $.noop
) დამმუშავებლები. ეს, რა თქმა უნდა, მახინჯი ჰაკი აუცილებელია iOS-ის ღონისძიების დელეგირებაში უხერხულობის აღმოსაფხვრელად , რაც სხვაგვარად ხელს შეუშლის ჩამოსაშლელი მენიუს გარეთ შეხებას კოდის გააქტიურებისგან, რომელიც ხურავს ჩამოსაშლელს. ჩამოსაშლელი მენიუს დახურვის შემდეგ, ეს დამატებითი ცარიელი დამმუშავებლები წაიშლება.mouseover
<body>
mouseover
დაამატეთ data-toggle="dropdown"
ბმულზე ან ღილაკზე ჩამოსაშლელი მენიუს გადასართავად.
გამოიძახეთ ჩამოსაშლელები JavaScript-ით:
data-toggle="dropdown"
ჯერ კიდევ საჭიროა
განურჩევლად იმისა, გამოიძახებთ თუ არა თქვენს ჩამოსაშლელს JavaScript-ით, თუ სანაცვლოდ იყენებთ data-api-ს, data-toggle="dropdown"
ყოველთვის საჭიროა ჩამოსაშლელი ტრიგერის ელემენტზე ყოფნა.
ოფციების გადაცემა შესაძლებელია მონაცემთა ატრიბუტების ან JavaScript-ის საშუალებით. მონაცემთა ატრიბუტებისთვის, დაამატეთ ვარიანტის სახელი data-
, როგორც data-offset=""
.
სახელი | ტიპი | ნაგულისხმევი | აღწერა |
---|---|---|---|
ოფსეტური | ნომერი | სიმებიანი | ფუნქცია | 0 | ჩამოსაშლელი ჩანაწერის ოფსეტური მიზანთან შედარებით. დამატებითი ინფორმაციისთვის იხილეთ Popper.js-ის ოფსეტური დოკუმენტები . |
გადახვევა | ლოგიკური | მართალია | ნება მიეცით ჩამოსაშლელ მენიუს გადატრიალდეს საცნობარო ელემენტზე გადახურვის შემთხვევაში. დამატებითი ინფორმაციისთვის იხილეთ Popper.js-ის Flip Docs . |
საზღვარი | სიმებიანი | ელემენტი | 'scrollParent' | ჩამოსაშლელი მენიუს გადინების შეზღუდვის საზღვარი. იღებს 'viewport' , 'window' , 'scrollParent' , ან HTMLElement მითითების მნიშვნელობებს (მხოლოდ JavaScript). დამატებითი ინფორმაციისთვის იხილეთ Popper.js-ის preventOverflow docs . |
გაითვალისწინეთ, როდესაც boundary
დაყენებულია სხვა მნიშვნელობაზე, გარდა 'scrollParent'
, სტილი position: static
გამოიყენება .dropdown
კონტეინერზე.
მეთოდი | აღწერა |
---|---|
$().dropdown('toggle') |
გადართავს ჩამოსაშლელ მენიუს მოცემული ნავიგაციის ზოლის ან ჩანართებით ნავიგაციის. |
$().dropdown('update') |
განაახლებს ელემენტის ჩამოსაშლელი ფანჯრის პოზიციას. |
$().dropdown('dispose') |
ანადგურებს ელემენტის ჩამოშლას. |
ყველა ჩამოსაშლელი მოვლენა გაშვებულია .dropdown-menu
'-ის მშობელ ელემენტზე და აქვს relatedTarget
თვისება, რომლის მნიშვნელობა არის გადართვის წამყვანი ელემენტი.
ღონისძიება | აღწერა |
---|---|
show.bs.dropdown |
ეს მოვლენა მაშინვე ირთვება, როდესაც შოუს მაგალითის მეთოდი გამოიძახება. |
shown.bs.dropdown |
ეს ღონისძიება გააქტიურებულია, როდესაც ჩამოსაშლელი ფაილი მომხმარებლისთვის ხილული გახდება (დაელოდება CSS გადასვლების დასრულებას). |
hide.bs.dropdown |
ეს ღონისძიება გააქტიურებულია დაუყოვნებლივ, როდესაც გამოიძახება დამალვის მაგალითის მეთოდი. |
hidden.bs.dropdown |
ეს ღონისძიება გააქტიურებულია, როდესაც ჩამოსაშლელი ფაილი მომხმარებლისგან დამალულია (დაელოდება CSS გადასვლების დასრულებას). |