Modal
Ampiasao ny plugin JavaScript modal Bootstrap mba hanampiana fifanakalozan-dresaka amin'ny tranokalanao ho an'ny boaty jiro, fampandrenesana mpampiasa, na atiny manokana.
Ahoana ny fiasan'izany
Alohan'ny hanombohan'ny singa modal an'ny Bootstrap dia aoka ho azo antoka ny mamaky izao manaraka izao satria niova vao haingana ny safidy sakafo.
- Modals dia namboarina miaraka amin'ny HTML, CSS ary JavaScript. Apetraka eo ambonin'ny zavatra hafa rehetra ao amin'ny antontan-taratasy izy ireo ary esory ny horonan-taratasy
<body>
mba hihodina ny votoatiny modal. - Ny fanindriana ny "backdrop" modal dia hanidy ho azy ny modal.
- Ny Bootstrap dia tsy manohana afa-tsy varavarankely modal iray isaky ny mandeha. Tsy tohanana ny modals nested satria inoanay fa traikefan'ny mpampiasa ratsy izy ireo.
- Modely ampiasaina
position: fixed
, izay mety ho somary manokana momba ny fandikana azy. Raha azo atao dia apetraho amin'ny toerana ambony indrindra ny HTML modal anao mba hisorohana ny mety hisian'ny fitsabahana amin'ny singa hafa. Mety ho sendra olana ianao rehefa manao akany.modal
ao anatin'ny singa raikitra hafa. - Indray mandeha indray, noho ny
position: fixed
, misy fampitandremana sasany momba ny fampiasana modals amin'ny fitaovana finday. Jereo ny antontan-taratasy fanohanana ny navigateur raha mila antsipiriany. - Noho ny fomba famaritan'ny HTML5 ny semantikany, ny
autofocus
toetra HTML dia tsy misy fiantraikany amin'ny modals Bootstrap. Mba hahazoana vokatra mitovy amin'izany, ampiasao JavaScript manokana:
$('#myModal').on('shown.bs.modal', function () {
$('#myInput').trigger('focus')
})
prefers-reduced-motion
fangatahan'ny haino aman-jery ny fiantraikan'ity singa ity. Jereo ny
fizarana mihetsika mihena amin'ny antontan-taratasinay momba ny fahafahana miditra .
Tohizo ny famakiana ho an'ny demo sy torolalana fampiasana.
OHATRA
Modal singa
Ity ambany ity ny ohatra static mod (midika hoe azy position
ary display
efa nosoloina). Ao anatin'izany ny lohatenin'ny modal, ny vatana modal (ilaina amin'ny padding
), ary ny tongotra modaly (tsy voatery). Mangataka izahay mba hampidiranao lohapejy modèle miaraka amin'ny hetsika fandroahana raha azo atao, na manome hetsika fandroahana mazava hafa.
<div class="modal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Modal body text goes here.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Demo mivantana
Ampifamadiho ny demo modal miasa amin'ny fipihana ny bokotra etsy ambany. Hivezivezy midina izy io ary hanjavona avy any an-tampon'ny pejy.
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Lavitra static
Rehefa apetraka amin'ny static ny backdrop dia tsy hikatona ny modal rehefa manindry eo ivelany. Kitiho ny bokotra etsy ambany raha hanandrana azy.
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#staticBackdrop">
Launch static backdrop modal
</button>
<!-- Modal -->
<div class="modal fade" id="staticBackdrop" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="staticBackdropLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Understood</button>
</div>
</div>
</div>
</div>
Manorata votoaty lava
Rehefa lasa lava loatra ny modals ho an'ny seranan-tsambo na fitaovana ampiasain'ny mpampiasa, dia mihodina tsy miankina amin'ny pejy mihitsy izy ireo. Andramo ny demo eto ambany hahitana ny tiana holazaina.
Azonao atao ihany koa ny mamorona modal scrollable izay mamela ny scrolling ny vatana modal amin'ny fanampiana .modal-dialog-scrollable
ny .modal-dialog
.
<!-- Scrollable modal -->
<div class="modal-dialog modal-dialog-scrollable">
...
</div>
Mitsangana mitsangana
Ampio .modal-dialog-centered
eo .modal-dialog
afovoany mitsangana ny modal.
<!-- Vertically centered modal -->
<div class="modal-dialog modal-dialog-centered">
...
</div>
<!-- Vertically centered scrollable modal -->
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
...
</div>
Tooltips sy popovers
Ny toro-hevitra momba ny fitaovana sy ny popovers dia azo apetraka ao anaty modals raha ilaina. Rehefa mihidy ny modals dia esorina ho azy koa izay toro-lalana sy popover ao anatiny.
<div class="modal-body">
<h5>Popover in a modal</h5>
<p>This <a href="#" role="button" class="btn btn-secondary popover-test" title="Popover title" data-content="Popover body content is set in this attribute.">button</a> triggers a popover on click.</p>
<hr>
<h5>Tooltips in a modal</h5>
<p><a href="#" class="tooltip-test" title="Tooltip">This link</a> and <a href="#" class="tooltip-test" title="Tooltip">that link</a> have tooltips on hover.</p>
</div>
Mampiasa ny grid
Ampiasao ny rafitra grid Bootstrap ao anaty modal amin'ny alàlan'ny fanaingoana .container-fluid
ao anaty .modal-body
. Avy eo, ampiasao ny kilasy rafitra rafitra ara-dalàna toy ny ataonao any amin'ny toerana hafa.
<div class="modal-body">
<div class="container-fluid">
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 ml-auto">.col-md-4 .ml-auto</div>
</div>
<div class="row">
<div class="col-md-3 ml-auto">.col-md-3 .ml-auto</div>
<div class="col-md-2 ml-auto">.col-md-2 .ml-auto</div>
</div>
<div class="row">
<div class="col-md-6 ml-auto">.col-md-6 .ml-auto</div>
</div>
<div class="row">
<div class="col-sm-9">
Level 1: .col-sm-9
<div class="row">
<div class="col-8 col-sm-6">
Level 2: .col-8 .col-sm-6
</div>
<div class="col-4 col-sm-6">
Level 2: .col-4 .col-sm-6
</div>
</div>
</div>
</div>
</div>
</div>
Miovaova ny votoatin'ny modal
Manana bokotra maromaro izay miteraka mody mitovy amin'ny atiny hafa kely? Ampiasao event.relatedTarget
sy HTML data-*
toetra (mety ho amin'ny alalan'ny jQuery ) mba hanova ny votoatin'ny ny modal miankina amin'ny bokotra izay no kitihina.
Ity ambany ity ny demo mivantana arahin'ny ohatra HTML sy JavaScript. Raha mila fanazavana fanampiny dia vakio ny doka hetsika modal raha mila fanazavana momba ny relatedTarget
.
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">New message</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="col-form-label">Recipient:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Message:</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Send message</button>
</div>
</div>
</div>
</div>
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data('whatever') // Extract info from data-* attributes
// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
// Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
var modal = $(this)
modal.find('.modal-title').text('New message to ' + recipient)
modal.find('.modal-body input').val(recipient)
})
Hanova ny animation
Ny $modal-fade-transform
fari-piainana no mamaritra ny toetry ny fiovan'ny .modal-dialog
alohan'ny sarimiaina fade-in modal, ny $modal-show-transform
fari-piainana no mamaritra ny fiovan'ny .modal-dialog
amin'ny faran'ny sarimiaina fade-in modal.
Raha tianao ohatra ny animation zoom-in dia azonao atao ny mametraka $modal-fade-transform: scale(.8)
.
Esory ny animation
Ho an'ny modals izay miseho fotsiny fa tsy manjavona ho jerena, esory ny .fade
kilasy amin'ny marika modal anao.
<div class="modal" tabindex="-1" aria-labelledby="..." aria-hidden="true">
...
</div>
Haavo mavitrika
Raha miova ny haavon'ny modal iray rehefa misokatra, dia tokony hiantso ianao $('#myModal').modal('handleUpdate')
hanitsy ny toeran'ny modal raha sendra misy scrollbar.
Accessibility
Ataovy azo antoka ny manampy aria-labelledby="..."
, manondro ny lohatenin'ny modal, ny .modal
. Ho fanampin'izany, azonao atao ny manome famaritana momba ny fifanakalozan-dresakao miaraka amin'ny aria-describedby
on .modal
. Mariho fa tsy mila manampy ianao role="dialog"
satria efa nampianay tamin'ny JavaScript.
Mampiditra horonan-tsary YouTube
Ny fametahana horonan-tsary YouTube amin'ny modals dia mitaky JavaScript fanampiny tsy ao amin'ny Bootstrap mba hampijanonana ho azy ny playback sy ny maro hafa. Jereo ity lahatsoratra Stack Overflow mahasoa ity raha mila fanazavana fanampiny.
Habe azo atao
Modals dia manana habe telo azo atao, azo alaina amin'ny alàlan'ny kilasy modifier hapetraka amin'ny .modal-dialog
. Ireo habe ireo dia miditra amin'ny toerana fiatoana sasany mba hialana amin'ny scrollbar marindrano amin'ny seranana tery kokoa.
Size | KILASY | Modal max-width |
---|---|---|
KELY | .modal-sm |
300px |
toerana misy anao | tsy misy | 500px |
ankamaroan'ireo | .modal-lg |
800px |
Extra large | .modal-xl |
1140px |
Ny maodely mahazatra antsika tsy misy kilasy modifier dia ny "mode" habe.
<div class="modal-dialog modal-xl">...</div>
<div class="modal-dialog modal-lg">...</div>
<div class="modal-dialog modal-sm">...</div>
Fampiasana
Ny plugin modal dia manova ny atiny miafina amin'ny fangatahana, amin'ny alàlan'ny toetran'ny data na JavaScript. Izy io koa dia manampy .modal-open
amin'ny <body>
fanafoanana ny fitondran-tena scrolling default ary miteraka a .modal-backdrop
manome faritra kitiho hanesorana ireo modals aseho rehefa manindry ivelan'ny modal.
Amin'ny alàlan'ny data attributes
Ampidiro modal iray tsy manoratra JavaScript. Apetraho data-toggle="modal"
eo amin'ny singa mpanara-maso, toy ny bokotra iray, miaraka amin'ny data-target="#foo"
na href="#foo"
hikendry mody iray manokana hivezivezy.
<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
Amin'ny JavaScript
Miantso modal miaraka amin'ny id myModal
misy andalana tokana amin'ny JavaScript:
$('#myModal').modal(options)
FANDIKANA
Ny safidy dia azo alefa amin'ny alàlan'ny toetran'ny data na JavaScript. Ho an'ny toetran'ny data, ampidiro amin'ny data-
, toy ny ao amin'ny data-backdrop=""
.
Anarana | Type | toerana misy anao | Description |
---|---|---|---|
resahana | boolean na ny tady'static' |
marina | Ahitana singa modal-backdrop. Raha tsy izany, manendry static ny backdrop izay tsy manidy ny modal amin'ny tsindry. |
Ohatra | boolean | marina | Manakatona ny modal rehefa tsindriana ny fanalahidin'ny escape |
ifantohana | boolean | marina | Mametraka ny fifantohana amin'ny modal rehefa natomboka. |
FAMPISEHOANA | boolean | marina | Mampiseho ny modal rehefa natomboka. |
fomba
Fomba sy fifindrana asynchronous
Ny fomba API rehetra dia asynchronous ary manomboka tetezamita . Miverina any amin'ny mpiantso izy ireo raha vao manomboka ny tetezamita fa alohan'ny hifarana . Ho fanampin'izany, tsy hojerena ny fiantsoana fomba iray amin'ny singa tetezamita .
Jereo ny antontan-taratasintsika JavaScript raha mila fanazavana fanampiny .
.modal(options)
Mampihetsika ny atiny ho toy ny modal. Manaiky safidy azo atao object
.
$('#myModal').modal({
keyboard: false
})
.modal('toggle')
Manova fomba tanana iray. Miverina any amin'ny mpiantso alohan'ny naseho na nafenina ny modal (izany hoe alohan'ny nitrangan'ny shown.bs.modal
na hidden.bs.modal
hetsika).
$('#myModal').modal('toggle')
.modal('show')
Manokatra modal amin'ny tanana. Miverina any amin'ny mpiantso alohan'ny tena naseho ny modal (izany hoe alohan'ny shown.bs.modal
nitrangan'ny hetsika).
$('#myModal').modal('show')
.modal('hide')
Manafina modal iray amin'ny tanana. Miverina any amin'ny mpiantso alohan'ny tena nafenina ny modal (izany hoe alohan'ny hidden.bs.modal
nitrangan'ny hetsika).
$('#myModal').modal('hide')
.modal('handleUpdate')
Ampifanaraho amin'ny tanana ny toeran'ny modal raha miova ny haavon'ny modal iray rehefa misokatra (izany hoe raha misy scrollbar miseho).
$('#myModal').modal('handleUpdate')
.modal('dispose')
Manimba ny modalin'ny singa iray.
zava-mitranga
Ny kilasy modal an'ny Bootstrap dia mampiharihary hetsika vitsivitsy ho an'ny fampifandraisana amin'ny fiasa modal. Ny hetsika modal rehetra dia alefa amin'ny modal mihitsy (izany hoe ao amin'ny <div class="modal">
).
Karazana hetsika | Description |
---|---|
show.bs.modal | Mirehitra avy hatrany ity hetsika ity rehefa show antsoina ny fomba fiasa. Raha vokatry ny tsindry iray dia azo alaina ho relatedTarget fananan'ny hetsika ny singa voakitika. |
shown.bs.modal | Ity hetsika ity dia voaroaka rehefa natao ho hitan'ny mpampiasa ny modal (hiandry ny fifindran'ny CSS ho vita). Raha vokatry ny tsindry iray dia azo alaina ho relatedTarget fananan'ny hetsika ny singa voakitika. |
hide.bs.modal | Ity hetsika ity dia alefa avy hatrany rehefa hide nantsoina ny fomba fiasa. |
hidden.bs.modal | Voaroaka ity hetsika ity rehefa vita ny nafenina tamin'ny mpampiasa ny modal (hiandry ny famitana ny fifindrana CSS). |
hidePrevented.bs.modal | Ity hetsika ity dia alefa rehefa aseho ny modal, ny lamosiny dia static ary ny kitiho ivelan'ny modal na ny fanerena fanendry fanendry dia atao miaraka amin'ny safidy fitendry na data-keyboard apetraka amin'ny false . |
$('#myModal').on('hidden.bs.modal', function (event) {
// do something...
})