გამოიყენეთ Bootstrap-ის JavaScript მოდალური დანამატი, რომ დაამატოთ დიალოგები თქვენს საიტზე ლაითბოქსებისთვის, მომხმარებლის შეტყობინებებისთვის ან სრულიად მორგებული შინაარსისთვის.
Როგორ მუშაობს
სანამ Bootstrap-ის მოდალური კომპონენტის გამოყენებას დაიწყებდეთ, აუცილებლად წაიკითხეთ შემდეგი, რადგან ჩვენი მენიუს ვარიანტები ახლახან შეიცვალა.
მოდალები აგებულია HTML, CSS და JavaScript-ით. ისინი განლაგებულია დოკუმენტში ყველა დანარჩენზე და აშორებენ გადახვევას <body>ისე, რომ მოდალური შინაარსი გადახვევის ნაცვლად.
Bootstrap მხარს უჭერს მხოლოდ ერთ მოდალურ ფანჯარას ერთდროულად. ჩადგმული მოდალები არ არის მხარდაჭერილი, რადგან მიგვაჩნია, რომ ისინი მომხმარებლის ცუდი გამოცდილებაა.
მოდალები იყენებენ position: fixed, რომელიც ზოგჯერ შეიძლება იყოს ცოტა სპეციფიკური მისი რენდერის შესახებ. შეძლებისდაგვარად, განათავსეთ თქვენი მოდალური HTML ზედა დონის პოზიციაზე, რათა თავიდან აიცილოთ სხვა ელემენტების პოტენციური ჩარევა. თქვენ სავარაუდოდ შეგექმნებათ პრობლემები .modalსხვა ფიქსირებულ ელემენტში ჩასმისას.
კიდევ ერთხელ, იმის გამო position: fixed, რომ არსებობს გარკვეული უკუჩვენებები მოდალების გამოყენებასთან დაკავშირებით მობილურ მოწყობილობებზე. იხილეთ ჩვენი ბრაუზერის მხარდაჭერის დოკუმენტები დეტალებისთვის.
იმის გამო, თუ როგორ განსაზღვრავს HTML5 მის სემანტიკას, HTML autofocusატრიბუტს არანაირი ეფექტი არ აქვს Bootstrap მოდალში. იგივე ეფექტის მისაღწევად გამოიყენეთ რამდენიმე მორგებული JavaScript:
განაგრძეთ კითხვა დემოსა და გამოყენების ინსტრუქციებისთვის.
მაგალითები
მოდალური კომპონენტები
ქვემოთ მოყვანილია სტატიკური მოდალური მაგალითი (იგულისხმება მისი positionდა displayგადალახული). მოყვება მოდალური სათაური, მოდალური ტექსტი (აუცილებელია padding) და მოდალური ქვედა კოლონტიტული (სურვილისამებრ). გთხოვთ, შეძლებისდაგვარად შეიყვანოთ მოდალური სათაურები გაუქმების ქმედებებით, ან მიაწოდოთ სხვა აშკარა დახურვის ქმედება.
მოდალური სათაური
მოდალური სხეულის ტექსტი მიდის აქ.
ცოცხალი დემო
გადართეთ სა���უშაო მოდალური დემო ღილაკზე დაწკაპუნებით. ის ჩამოიწევს ქვემოთ და გაქრება გვერდის ზემოდან.
მოდალური სათაური
უი, თქვენ ამ ტექსტს მოდალურად კითხულობთ!
სტატიკური ფონი
როდესაც ფონი დაყენებულია სტატიკურზე, მოდალი არ დაიხურება მის გარეთ დაწკაპუნებისას. დააწკაპუნეთ ქვემოთ მოცემულ ღილაკზე, რომ სცადოთ.
მოდალური სათაური
ჩემს გარეთ თუ დააწკაპუნებ, არ დავხურავ. არც კი შეეცადოთ დააჭიროთ გაქცევის ღილაკს.
გრძელი შინაარსის გადახვევა
როდესაც მოდალები ძალიან გრძელი ხდება მომხმარებლის ხედვის პორტისთვის ან მოწყობილობისთვის, ისინი გადადიან თავად გვერდისგან დამოუკიდებლად. სცადეთ ქვემოთ მოცემული დემო ვერსია, რომ ნახოთ რას ვგულისხმობთ.
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
თქვენ ასევე შეგიძლიათ შექმნათ გადახვევადი მოდალი, რომელიც საშუალებას გაძლევთ გადაახვიოთ მოდალური სხეული ზე .modal-dialog-scrollableდამატებით .modal-dialog.
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Modal title
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.
Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.
გამოიყენეთ Bootstrap ქსელის სისტემა მოდალის .container-fluidშიგნით ბუდეში მოთავსებით .modal-body. შემდეგ გამოიყენეთ ჩვეულებრივი ქსელის სისტემის კლასები, როგორც სხვაგან.
Grids in modals
.col-md-4
.col-md-4 .ml-auto
.col-md-3 .ml-auto
.col-md-2 .ml-auto
.col-md-6 .ml-auto
Level 1: .col-sm-9
Level 2: .col-8 .col-sm-6
Level 2: .col-4 .col-sm-6
განსხვავებული მოდალური შინაარსი
გაქვთ რამოდენიმე ღილაკი, რომელიც ყველა ერთსა და იმავე მოდალს ააქტიურებს ოდნავ განსხვავებული შინაარსით? გამოიყენეთ event.relatedTargetდა HTML data-*ატრიბუტები (შესაძლოა jQuery- ის საშუალებით ), რათა შეიცვალოს მოდალის შინაარსი იმისდა მიხედვით, თუ რომელ ღილაკზე დააწკაპუნეთ.
ქვემოთ მოცემულია ცოცხალი დემო ვერსია, რასაც მოჰყვება HTML და JavaScript მაგალითი. დამატებითი ინფორმაციისთვის წაიკითხეთ მოდალური მოვლენების დოკუმენტები დეტალებისთვის relatedTarget.
New message
ანიმაციის შეცვლა
$modal-fade-transformცვლადი განსაზღვრავს ტრანსფორმაციის მდგომარეობას მოდალური .modal-dialogfade-in ანიმაციამდე, $modal-show-transformცვლადი განსაზღვრავს ტრანსფორმაციას .modal-dialogმოდალური fade-in ანიმაციის ბოლოს.
თუ გსურთ, მაგალითად, მასშტაბის ანიმაცია, შეგიძლიათ დააყენოთ $modal-fade-transform: scale(.8).
ანიმაციის წაშლა
მოდალებისთვის, რომლებიც უბრალოდ ჩნდება, ვიდრე ქრება სანახავად, ამოიღეთ .fadeკლასი თქვენი მოდალური მარკირებიდან.
დინამიური სიმაღლეები
თუ მოდალის სიმაღლე იცვლება, სანამ ის ღიაა, თქვენ უნდა დარეკოთ $('#myModal').modal('handleUpdate')მოდალის პოზიციის შესწორებაზე, თუ გადახვევის ზოლი გამოჩნდება.
ხელმისაწვდომობა
დარწმუნდით, რომ დაამატეთ role="dialog"და aria-labelledby="...", მოდალური სათაურის მითითებით .modal, და role="document"თავად .modal-dialog. გარდა ამისა, შეგიძლიათ მიუთითოთ თქვენი მოდალური დიალოგის aria-describedbyშესახებ .modal.
YouTube ვიდეოების ჩაშენება
YouTube ვიდეოების მოდალში ჩასმა მოითხოვს დამატებით JavaScript-ს, რომელიც არ არის Bootstrap-ში, რათა ავტომატურად შეწყვიტოს დაკვრა და სხვა. იხილეთ ეს სასარგებლო Stack Overflow პოსტი დამატებითი ინფორმაციისთვის.
სურვილისამებრ ზომები
მოდალებს აქვთ სამი სურვილისამებრ ზომა, რომლებიც ხელმისაწვდომია მოდიფიკატორის კლასების საშუალებით, რათა განთავსდეს .modal-dialog. ეს ზომები შედის გარკვეულ წყვეტის წერტილებში, რათა თავიდან იქნას აცილებული ჰორიზონტალური გადახვევის ზოლები ვიწრო ხედებზე.
ზომა
Კლასი
მოდალური მაქსიმალური სიგანე
Პატარა
.modal-sm
300px
ნაგულისხმევი
არცერთი
500px
დიდი
.modal-lg
800px
ზედმეტი დიდი
.modal-xl
1140px
ჩვენი ნაგულისხმევი მოდალი მოდიფიკატორის კლასის გარეშე წარმოადგენს „საშუალო“ ზომის მოდალს.
Extra large modal
...
Large modal
...
Small modal
...
გამოყენება
მოდალური დანამატი ცვლის თქვენს ფარულ შინაარსს მოთხოვნისამებრ, მონაცემთა ატრიბუტების ან JavaScript-ის საშუალებით. ის ასევე ამატებს გადახვევის ნაგულისხმევ ქცევას და აგენერირებს დაწკაპუნების .modal-openზონას მოდალის გარეთ დაწკაპუნებისას ნაჩვენები მოდალების გაუქმებისთვის.<body>.modal-backdrop
მონაცემთა ატრიბუტების მეშვეობით
გაააქტიურეთ მოდალი JavaScript-ის ჩაწერის გარეშე. დაყენებულია data-toggle="modal"კონტროლერის ელემენტზე, როგორიცაა ღილაკი, data-target="#foo"ან href="#foo"მიზნად ისახავს კონკრეტული მოდალის გადართვას.
JavaScript-ის საშუალებით
დარეკეთ მოდალს id- myModalით JavaScript-ის ერთი ხაზით:
Პარამეტრები
ოფციების გადაცემა შესაძლებელია მონაცემთა ატრიბუტების ან JavaScript-ის საშუალებით. მონაცემთა ატრიბუტებისთვის, დაამატეთ ვარიანტის სახელი data-, როგორც data-backdrop="".
სახელი
ტიპი
ნაგულისხმევი
აღწერა
ფონი
ლოგიკური ან სტრიქონი'static'
მართალია
მოიცავს მოდალური ფონის ელემენტს. ალტერნატიულად, მიუთითეთ staticფონი, რომელიც არ ხურავს მოდალს დაწკაპუნების ან გაქცევის ღილაკის დაჭერისას.
კლავიატურა
ლოგიკური
მართალია
ხურავს მოდალს გაქცევის ღილაკის დაჭერისას
ფოკუსირება
ლოგიკური
მართალია
ინიციალიზაციისას ყურადღებას ამახვილებს მოდალზე.
შოუ
ლოგიკური
მართალია
აჩვენებს მოდალს ინიციალიზაციისას.
მეთოდები
ასინქრონული მეთოდები და გადასვლები
ყველა API მეთოდი ასინქრონულია და იწყებს გადასვლას . ისინი უბრუნდებიან აბონენტს გადასვლის დაწყებისთანავე, მაგრამ მის დასრულებამდე . გარდა ამისა, მეთოდის გამოძახება გარდამავალ კომპონენტზე იგნორირებული იქნება .
ააქტიურებს თქვენს შინაარსს, როგორც მოდალს. იღებს არასავალდებულო ვარიანტებს object.
.modal('toggle')
ხელით ცვლის მოდალს. უბრუნდება აბონენტს მოდალის რეალურად ჩვენებამდე ან დამალვამდე (ანუ, სანამ shown.bs.modalან hidden.bs.modalმოვლენა მოხდება).
.modal('show')
ხელით ხსნის მოდალს. უბრუნდება აბონენტს მოდალის რეალურად ჩვენებამდე (ანუ shown.bs.modalმოვლენის დადგომამდე).
.modal('hide')
ხელით მალავს მოდალს. უბრუნდება აბონენტს მანამ, სანამ მოდალი ნამდვილად დამალული იქნება (ანუ hidden.bs.modalმოვლენის დადგომამდე).
.modal('handleUpdate')
ხელით შეცვალეთ მოდალის პოზიცია, თუ მოდალის სიმაღლე იცვლება მისი გახსნის დროს (ანუ იმ შემთხვევაში, თუ გადახვევის ზოლი გამოჩნდება).
.modal('dispose')
ანადგურებს ელემენტის მოდალს.
Ივენთი
Bootstrap-ის მოდალური კლასი ავლენს რამდენიმე მოვლენას მოდალურ ფუნქციონირებაში ჩასართავად. ყველა მოდალური მოვლენა ისროლება თავად მოდალზე (ანუ ზე <div class="modal">).
ღონისძიების ტიპი
აღწერა
შოუ.ბს.მოდალური
ეს მოვლენა მაშინვე ირთვება, როდესაც showგამოიძახება ეგზემპლარის მეთოდი. თუ დაწკაპუნებით არის გამოწვეული, დაწკაპუნებული ელემენტი ხელმისაწვდომია relatedTargetმოვლენის თვისებად.
ნაჩვენებია.ბს.მოდალური
ეს ღონისძიება გააქტიურებულია, როდესაც მოდალი მომხმარებლისთვის ხილული გახდება (დაელოდება CSS გადასვლების დასრულებას). თუ დაწკაპუნებით არის გამოწვეული, დაწკაპუნებული ელემენტი ხელმისაწვდომია relatedTargetმოვლენის თვისებად.
დამალვა.ბს.მოდალური
ეს ღონისძიება გააქტიურებულია მაშინვე, როდესაც hideგამოიძახება ინსტანციის მეთოდი.
დამალული.ბს.მოდალური
ეს ღონისძიება გააქტიურებულია, როდესაც მოდალის დამალვა დასრულდება მომხმარებლისგან (დაელოდება CSS გადასვლების დასრულებას).
დამალვა Prevented.bs.modal
ეს ღონისძიება ირთვება, როდესაც ნაჩვენებია მოდალი, არის მისი ფონი staticდა შესრულდება დაწკაპუნება მოდალის გარეთ ან გაქცევის ღილაკის დაჭერა.