Módúil
Úsáid breiseán módúil JavaScript Bootstrap chun dialóga a chur le do shuíomh le haghaidh boscaí solais, fógraí úsáideoirí, nó ábhar atá go hiomlán saincheaptha.
Conas a oibríonn sé
Sula dtosaíonn tú le comhpháirt mhódúil Bootstrap, bí cinnte an méid seo a leanas a léamh mar go bhfuil ár roghanna roghchláir athraithe le déanaí.
- Tógtar modhanna le HTML, CSS, agus JavaScript. Tá siad suite thar gach rud eile sa doiciméad agus bain an scrolla as an
<body>
ionas go scrollaíonn ábhar modha ina ionad. - Má chliceálann tú ar an “cúlra” módúil, dúnfar an modúl go huathoibríoch.
- Ní thacaíonn Bootstrap ach fuinneog mhódúil amháin ag an am. Ní thacaítear le módúil neadaithe mar creidimid gur droch-eispéiris úsáideoirí iad.
- Úsáideann modhanna
position: fixed
, a d'fhéadfadh a bheith beagán faoi leith uaireanta faoina rindreáil. Nuair is féidir, cuir do HTML módúil i suíomh barrleibhéil chun cur isteach féideartha ó eilimintí eile a sheachaint. Is dócha go mbeidh fadhbanna agat agus tú ag neadú.modal
laistigh d’eilimint sheasta eile. - Arís eile, mar gheall ar
position: fixed
, tá roinnt caveats ann maidir le modúil a úsáid ar ghléasanna soghluaiste. Féach ar ár ndoiciméid tacaíochta brabhsálaí le haghaidh sonraí. - Mar gheall ar an gcaoi a sainmhíníonn HTML5 a shéimeantaic, níl aon éifeacht ag an
autofocus
tréith HTML i módúil Bootstrap. Chun an éifeacht chéanna a bhaint amach, bain úsáid as roinnt JavaScript saincheaptha:
var myModal = document.getElementById('myModal')
var myInput = document.getElementById('myInput')
myModal.addEventListener('shown.bs.modal', function () {
myInput.focus()
})
prefers-reduced-motion
cheist na meán. Féach an
rannán tairiscint laghdaithe dár gcáipéisíocht inrochtaineachta .
Lean ort ag léamh le haghaidh taispeána agus treoirlínte úsáide.
Samplaí
Comhpháirteanna módúla
Anseo thíos tá sampla módúil statachposition
(a chiallaíonn go bhfuil sé agus display
gur sáraíodh é). San áireamh tá an ceanntásc módúil, an corp módúil (riachtanach le haghaidh padding
), agus buntásc módúil (roghnach). Iarraimid ort ceanntásca módúla a chur san áireamh le gníomhartha dífhostaithe nuair is féidir, nó gníomh dífhostú sainráite eile a sholáthar.
<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="btn-close" data-bs-dismiss="modal" aria-label="Close"></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-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Taispeántas beo
Scoránaigh taispeána modha oibre trí chliceáil ar an gcnaipe thíos. Sleamhnóidh sé síos agus céimnithe isteach ó bharr an leathanaigh.
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-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="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Cúlra statach
Nuair a bheidh an cúlra socraithe go statach, ní dhúnfaidh an modúl nuair a chliceálann sé lasmuigh air. Cliceáil ar an gcnaipe thíos chun triail a bhaint as.
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#staticBackdrop">
Launch static backdrop modal
</button>
<!-- Modal -->
<div class="modal fade" id="staticBackdrop" data-bs-backdrop="static" data-bs-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="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Understood</button>
</div>
</div>
</div>
</div>
Scrollaigh ábhar fada
Nuair a éiríonn módúil rófhada le haghaidh radharc nó gléas an úsáideora, scrollaíonn siad neamhspleách ar an leathanach féin. Bain triail as an taispeántas thíos a fheiceáil cad atá i gceist againn.
Is féidir leat modha inscrollaithe a chruthú freisin a cheadaíonn an corp módúil a scrollú ach cur .modal-dialog-scrollable
le .modal-dialog
.
<!-- Scrollable modal -->
<div class="modal-dialog modal-dialog-scrollable">
...
</div>
Ingearach lárnach
Cuir .modal-dialog-centered
le .modal-dialog
lár an mhódúil go hingearach.
<!-- 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>
Leideanna uirlisí agus popovers
Is féidir leideanna uirlisí agus popovers a chur laistigh de mhódúil mar is gá. Nuair a dhúntar módúil, déantar aon leideanna uirlisí agus popovers laistigh díobh a dhíbhe go huathoibríoch freisin.
<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-bs-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>
Ag baint úsáide as an eangach
Bain úsáid as córas eangaí Bootstrap laistigh de mhódúil trí neadú .container-fluid
laistigh den .modal-body
. Ansin, bain úsáid as na gnáthranganna córais eangaí mar a dhéanfá áit ar bith eile.
<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 ms-auto">.col-md-4 .ms-auto</div>
</div>
<div class="row">
<div class="col-md-3 ms-auto">.col-md-3 .ms-auto</div>
<div class="col-md-2 ms-auto">.col-md-2 .ms-auto</div>
</div>
<div class="row">
<div class="col-md-6 ms-auto">.col-md-6 .ms-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>
Ábhar modha éagsúil
An bhfuil braon cnaipí agat a spreagann an modh céanna agus a bhfuil ábhair beagán difriúil acu? Úsáid event.relatedTarget
agus tréithe HTMLdata-bs-*
chun inneachar an mhódúil a athrú ag brath ar an gcnaipe ar a ndearnadh cliceáil.
Anseo thíos tá taispeántas beo agus HTML agus JavaScript mar shampla. Le haghaidh tuilleadh faisnéise, léigh na doiciméid um imeachtaí módúla le haghaidh sonraí ar relatedTarget
.
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal" data-bs-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal" data-bs-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal" data-bs-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="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form>
<div class="mb-3">
<label for="recipient-name" class="col-form-label">Recipient:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="mb-3">
<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-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Send message</button>
</div>
</div>
</div>
</div>
var exampleModal = document.getElementById('exampleModal')
exampleModal.addEventListener('show.bs.modal', function (event) {
// Button that triggered the modal
var button = event.relatedTarget
// Extract info from data-bs-* attributes
var recipient = button.getAttribute('data-bs-whatever')
// If necessary, you could initiate an AJAX request here
// and then do the updating in a callback.
//
// Update the modal's content.
var modalTitle = exampleModal.querySelector('.modal-title')
var modalBodyInput = exampleModal.querySelector('.modal-body input')
modalTitle.textContent = 'New message to ' + recipient
modalBodyInput.value = recipient
})
Scoránaigh idir módúil
Scoránaigh idir módúil iolracha le roinnt socrúcháin cliste de na data-bs-target
agus na data-bs-toggle
tréithe. Mar shampla, d'fhéadfá modhnú athshocraithe pasfhocail a scoránaigh laistigh de chomhartha modúl atá oscailte cheana féin. Tabhair faoi deara le do thoil nach féidir modhanna iolracha a oscailt ag an am céanna — ní dhéanann an modh seo ach scoránú idir dhá mhódúil ar leith.
<div class="modal fade" id="exampleModalToggle" aria-hidden="true" aria-labelledby="exampleModalToggleLabel" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalToggleLabel">Modal 1</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Show a second modal and hide this one with the button below.
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-bs-target="#exampleModalToggle2" data-bs-toggle="modal" data-bs-dismiss="modal">Open second modal</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="exampleModalToggle2" aria-hidden="true" aria-labelledby="exampleModalToggleLabel2" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalToggleLabel2">Modal 2</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Hide this modal and show the first with the button below.
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-bs-target="#exampleModalToggle" data-bs-toggle="modal" data-bs-dismiss="modal">Back to first</button>
</div>
</div>
</div>
</div>
<a class="btn btn-primary" data-bs-toggle="modal" href="#exampleModalToggle" role="button">Open first modal</a>
Athraigh beochan
Cinneann an t- $modal-fade-transform
athróg an staid claochlaithe .modal-dialog
roimh an beochan céimnithe módúil, $modal-show-transform
socraíonn an athróg an claochlú .modal-dialog
ag deireadh na beochana modha céimnithe-i.
Más mian leat mar shampla beochan súmáil isteach, is féidir leat $modal-fade-transform: scale(.8)
.
Bain beochan
Le haghaidh módúil atá le feiceáil go simplí seachas céimnithe isteach chun amharc, bain an .fade
rang de do mharcáil módúil.
<div class="modal" tabindex="-1" aria-labelledby="..." aria-hidden="true">
...
</div>
Airde dinimiciúil
Má athraíonn airde módúil agus é oscailte, ba cheart duit glaoch myModal.handleUpdate()
chun suíomh an mhódúil a athcheartú ar eagla go bhfeicfear scrollbharra.
Inrochtaineacht
Bí cinnte aria-labelledby="..."
, ag tagairt don teideal módúil, a chur le .modal
. Ina theannta sin, is féidir leat cur síos a dhéanamh ar do dialóg mhodhúil agus aria-describedby
ar .modal
. Tabhair faoi deara nach gá duit é a chur leis role="dialog"
toisc go gcuirimid leis é trí JavaScript cheana féin.
Físeáin YouTube a neadú
Chun físeáin YouTube a leabú i módúil tá gá le JavaScript breise nach bhfuil i Bootstrap chun athsheinm agus níos mó a stopadh go huathoibríoch. Féach ar an bpostáil cabhrach Stack Overflow seo le haghaidh tuilleadh eolais.
Méideanna roghnacha
Tá trí mhéid roghnacha ag na modúil, ar fáil trí ranganna mionathraithe le cur ar .modal-dialog
. Tosaíonn na méideanna seo ag brisphointí áirithe chun barraí scrollbharra cothrománacha ar phoirt amhairc níos cúinge a sheachaint.
Méid | Aicme | Leithead uasta módúil |
---|---|---|
Beaga | .modal-sm |
300px |
Réamhshocrú | Dada | 500px |
Mór | .modal-lg |
800px |
Breise mór | .modal-xl |
1140px |
Is é ár modh réamhshocraithe gan modhnóirí aicme modha an “mheánmhéide”.
<div class="modal-dialog modal-xl">...</div>
<div class="modal-dialog modal-lg">...</div>
<div class="modal-dialog modal-sm">...</div>
Modal lánscáileáin
Sárú eile is ea an rogha módúil a chur ar taispeáint a chlúdaíonn radharc an úsáideora, atá ar fáil trí ranganna mionathraithe a chuirtear ar .modal-dialog
.
Aicme | Infhaighteacht |
---|---|
.modal-fullscreen |
I gcónaí |
.modal-fullscreen-sm-down |
Thíos576px |
.modal-fullscreen-md-down |
Thíos768px |
.modal-fullscreen-lg-down |
Thíos992px |
.modal-fullscreen-xl-down |
Thíos1200px |
.modal-fullscreen-xxl-down |
Thíos1400px |
<!-- Full screen modal -->
<div class="modal-dialog modal-fullscreen-sm-down">
...
</div>
Sass
Athróga
$modal-inner-padding: $spacer;
$modal-footer-margin-between: .5rem;
$modal-dialog-margin: .5rem;
$modal-dialog-margin-y-sm-up: 1.75rem;
$modal-title-line-height: $line-height-base;
$modal-content-color: null;
$modal-content-bg: $white;
$modal-content-border-color: rgba($black, .2);
$modal-content-border-width: $border-width;
$modal-content-border-radius: $border-radius-lg;
$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width);
$modal-content-box-shadow-xs: $box-shadow-sm;
$modal-content-box-shadow-sm-up: $box-shadow;
$modal-backdrop-bg: $black;
$modal-backdrop-opacity: .5;
$modal-header-border-color: $border-color;
$modal-footer-border-color: $modal-header-border-color;
$modal-header-border-width: $modal-content-border-width;
$modal-footer-border-width: $modal-header-border-width;
$modal-header-padding-y: $modal-inner-padding;
$modal-header-padding-x: $modal-inner-padding;
$modal-header-padding: $modal-header-padding-y $modal-header-padding-x; // Keep this for backwards compatibility
$modal-sm: 300px;
$modal-md: 500px;
$modal-lg: 800px;
$modal-xl: 1140px;
$modal-fade-transform: translate(0, -50px);
$modal-show-transform: none;
$modal-transition: transform .3s ease-out;
$modal-scale-transform: scale(1.02);
Lúb
Gintear módúil lánscáileáin sofhreagracha tríd an $breakpoints
léarscáil agus lúb i scss/_modal.scss
.
@each $breakpoint in map-keys($grid-breakpoints) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
$postfix: if($infix != "", $infix + "-down", "");
@include media-breakpoint-down($breakpoint) {
.modal-fullscreen#{$postfix} {
width: 100vw;
max-width: none;
height: 100%;
margin: 0;
.modal-content {
height: 100%;
border: 0;
@include border-radius(0);
}
.modal-header {
@include border-radius(0);
}
.modal-body {
overflow-y: auto;
}
.modal-footer {
@include border-radius(0);
}
}
}
}
Úsáid
Scoránaigh an breiseán modha d’inneachar folaithe ar éileamh, trí tréithe sonraí nó JavaScript. Sáraíonn sé freisin iompar scrollaithe réamhshocraithe agus gineann sé .modal-backdrop
a chun limistéar cliceáil a sholáthar chun módúil a thaispeántar a dhíbhe nuair a chliceáiltear lasmuigh den mhódúil.
Trí tréithe sonraí
Modúl a ghníomhachtú gan JavaScript a scríobh. Socraigh data-bs-toggle="modal"
ar eilimint rialtóra, cosúil le cnaipe, mar aon le data-bs-target="#foo"
nó href="#foo"
chun modh sonrach a dhíriú chun scoránaigh.
<button type="button" data-bs-toggle="modal" data-bs-target="#myModal">Launch modal</button>
Trí JavaScript
Cruthaigh modúl le líne amháin de JavaScript:
var myModal = new bootstrap.Modal(document.getElementById('myModal'), options)
Roghanna
Is féidir roghanna a chur ar aghaidh trí tréithe sonraí nó JavaScript. Maidir le tréithe sonraí, cuir ainm na rogha i gceangal le data-bs-
, mar atá i data-bs-backdrop=""
.
Ainm | Cineál | Réamhshocrú | Cur síos |
---|---|---|---|
backdrop |
Boole nó an téad'static' |
true |
Áirítear eilimint mhodúil chúlra. Mar mhalairt air sin, sonraigh static le haghaidh cúlra nach ndúnann an modúl ar chliceáil. |
keyboard |
Boole | true |
Dúnann sé an modúl nuair a bhrúitear eochair éalaithe |
focus |
Boole | true |
Cuireann sé an fócas ar an modha nuair a thosaigh sé. |
Modhanna
Modhanna agus aistrithe asincrónacha
Tá gach modh API asincrónach agus cuireann siad tús le haistriú . Filleann siad ar an nglaoiteoir chomh luath agus a chuirtear tús leis an aistriú ach sula gcríochnaíonn sé . Ina theannta sin, ní thabharfar aird ar ghlao modha ar chomhpháirt trasdula .
Féach ar ár gcáipéisíocht JavaScript le haghaidh tuilleadh eolais .
Roghanna pasála
Gníomhachtaíonn d'ábhar mar mhodh modúl. Glacann rogha roghnach object
.
var myModal = new bootstrap.Modal(document.getElementById('myModal'), {
keyboard: false
})
scoránaigh
Scoránaigh modúl de láimh. Filleann sé ar an nglaoiteoir sula dtaispeántar nó sula gcuirtear i bhfolach an modúl (.i. sula dtarlaíonn an shown.bs.modal
nó an teagmhas).hidden.bs.modal
myModal.toggle()
seó
Osclaíonn modúl de láimh. Filleann sé ar an nglaoiteoir sula dtaispeántar an modúl iarbhír (.i. sula shown.bs.modal
dtarlaíonn an teagmhas).
myModal.show()
Chomh maith leis sin, is féidir leat pas a fháil ar eilimint DOM mar argóint is féidir a fháil sna himeachtaí modha (mar an relatedTarget
maoin).
var modalToggle = document.getElementById('toggleMyModal') // relatedTarget
myModal.show(modalToggle)
ceilt
Folaigh modúl de láimh. Filleann sé ar an nglaoiteoir sula gcuirtear an modh i bhfolach (ie sula hidden.bs.modal
dtarlaíonn an teagmhas).
myModal.hide()
láimhseáil Nuashonrú
Déan suíomh an mhódúil a athcheartú de láimh má athraíonn airde an mhódúil agus é oscailte (ie ar eagla go bhfeictear scrollbharra).
myModal.handleUpdate()
a dhiúscairt
Scriosann modhúil eilimint. (Baintear sonraí stóráilte ar an eilimint DOM)
myModal.dispose()
faighInstance
Modh statach a cheadaíonn duit an t-ásc módúil a bhaineann le heilimint DOM a fháil
var myModalEl = document.getElementById('myModal')
var modal = bootstrap.Modal.getInstance(myModalEl) // Returns a Bootstrap modal instance
getOrCreateInstance
Modh statach a cheadaíonn duit an t-ásc módúil a bhaineann le heilimint DOM a fháil, nó ceann nua a chruthú ar eagla nach bhfuil sé inisealaithe
var myModalEl = document.querySelector('#myModal')
var modal = bootstrap.Modal.getOrCreateInstance(myModalEl) // Returns a Bootstrap modal instance
Imeachtaí
Nochtann rang modha Bootstrap roinnt imeachtaí chun dul i ngleic le feidhmiúlacht mhódúil. Cuirtear na himeachtaí módúla go léir chun cinn ag an modúl féin (.i. ag an <div class="modal">
).
Cineál imeachta | Cur síos |
---|---|
show.bs.modal |
Téann an teagmhas seo chun solais láithreach nuair show a ghlaoitear an modh ásc. Más cliceáil is cúis leis, tá an eilimint chliceáilte ar fáil mar relatedTarget airí an imeachta. |
shown.bs.modal |
Cuirtear an teagmhas seo ar ceal nuair a bheidh an modúl infheicthe don úsáideoir (fanfaidh sé go mbeidh na haistrithe CSS curtha i gcrích). Más cliceáil is cúis leis, tá an eilimint chliceáilte ar fáil mar relatedTarget airí an imeachta. |
hide.bs.modal |
Cuirtear an teagmhas seo ar ceal láithreach nuair a bhíonn an hide modh ásc glaoite. |
hidden.bs.modal |
Tá an teagmhas seo bréan nuair a bhíonn an mód críochnaithe á chur i bhfolach ón úsáideoir (fanfaidh sé go mbeidh aistrithe CSS le cur i gcrích). |
hidePrevented.bs.modal |
Cealaítear an teagmhas seo nuair a thaispeánfar an modúl, tá a chúlra ann static agus cliceáil lasmuigh den mhodh nó nuair a dhéantar brúigh eochair éalaithe leis an rogha méarchlár nó data-bs-keyboard socraithe go false . |
var myModalEl = document.getElementById('myModal')
myModalEl.addEventListener('hidden.bs.modal', function (event) {
// do something...
})