מאָדאַל
ניצן Bootstrap ס דזשאַוואַסקריפּט מאָדאַל פּלוגין צו לייגן דיאַלאָגס צו דיין פּלאַץ פֿאַר ליגהטבאָקסעס, באַניצער נאָוטאַפאַקיישאַנז אָדער גאָר מנהג אינהאַלט.
וויאזוי עס ארבעט
איידער איר אָנהייבן מיט Bootstrap ס מאָדאַל קאָמפּאָנענט, זיין זיכער צו לייענען די פאלגענדע ווייַל אונדזער מעניו אָפּציעס האָבן לעצטנס געביטן.
- מאָדס זענען געבויט מיט HTML, CSS און דזשאַוואַסקריפּט. זיי זענען פּאַזישאַנד איבער אַלץ אַנדערש אין דעם דאָקומענט און באַזייַטיקן מעגילע פון דעם
<body>
אַזוי אַז מאָדאַל אינהאַלט סקראָללס אַנשטאָט. - קליקינג אויף די מאָדאַל "באַקדראַפּ" וועט אויטאָמאַטיש פאַרמאַכן די מאָדאַל.
- באָאָטסטראַפּ שטיצט בלויז איין מאָדאַל פֿענצטער אין אַ צייט. נעסטעד מאָדאַלז זענען נישט געשטיצט ווייַל מיר גלויבן זיי זענען נעבעך באַניצער יקספּיריאַנסיז.
- מאָדאַלס נוצן
position: fixed
, וואָס קענען מאל זיין אַ ביסל באַזונדער וועגן זיין רענדערינג. ווען מעגלעך, שטעלן דיין מאָדאַל HTML אין אַ שפּיץ-מדרגה שטעלע צו ויסמיידן פּאָטענציעל ינטערפיראַנס פון אנדערע עלעמענטן. איר וועט מסתּמא לויפן אין ישוז ווען נעסטינג אַ.modal
ין אן אנדער פאַרפעסטיקט עלעמענט. - אַמאָל ווידער, רעכט צו
position: fixed
, עס זענען עטלעכע קייוויאַץ מיט די נוצן פון מאָדאַלז אויף רירעוודיק דעוויסעס. זען אונדזער בלעטערער שטיצן דאָקומענטן פֿאַר דעטאַילס. - רעכט צו ווי HTML5 דיפיינז זייַן סעמאַנטיקס, די
autofocus
HTML אַטריביוט האט קיין ווירקונג אין באָאָטסטראַפּ מאָדאַלז. צו דערגרייכן די זעלבע ווירקונג, נוצן עטלעכע מנהג דזשאַוואַסקריפּט:
$('#myModal').on('shown.bs.modal', function () {
$('#myInput').trigger('focus')
})
prefers-reduced-motion
מידיאַ אָנפֿרעג. זען די
רידוסט באַוועגונג אָפּטיילונג פון אונדזער אַקסעסאַביליטי דאַקיומענטיישאַן .
האַלטן לייענען פֿאַר דעמאָס און באַניץ גיידליינז.
ביישפילן
מאָדאַל קאַמפּאָונאַנץ
ונטער איז אַ סטאַטיק מאָדאַל בייַשפּיל (טייַטש זייַן position
און display
האָבן שוין אָווועררידאַן). אַרייַנגערעכנט די מאָדאַל כעדער, מאָדאַל גוף (פארלאנגט פֿאַר padding
), און מאָדאַל פוטער (אַפּשאַנאַל). מיר בעטן אַז איר אַרייַן מאָדאַל כעדערז מיט אָפּזאָגן אַקשאַנז ווען מעגלעך, אָדער צושטעלן אן אנדער יקספּליסאַט אָפּזאָגן קאַמף.
<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>
לעבן דעמאָ
טאַגאַל אַ ארבעטן מאָדאַל דעמאָ דורך געבן אַ קליק דעם קנעפּל אונטן. עס וועט רוק אַראָפּ און וועלקן אין די שפּיץ פון די בלאַט.
<!-- 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>
סטאַטיק באַקדראַפּ
ווען די באַקדראַפּ איז באַשטימט צו סטאַטיק, די מאָדאַל וועט נישט פאַרמאַכן ווען קליקינג אַרויס עס. דריקט דעם קנעפּל אונטן צו פּרובירן עס.
<!-- 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>
סקראָללינג לאַנג אינהאַלט
ווען מאָדאַלס ווערן צו לאַנג פֿאַר דער באַניצער ס וויופּאָרט אָדער מיטל, זיי מעגילע ינדיפּענדאַנטלי פון די בלאַט זיך. פּרוּווט די דעמאָ אונטן צו זען וואָס מיר מיינען.
איר קענען אויך שאַפֿן אַ סקראָללאַבלע מאָדאַל וואָס אַלאַוז מעגילע די מאָדאַל גוף דורך אַדינג .modal-dialog-scrollable
צו .modal-dialog
.
<!-- Scrollable modal -->
<div class="modal-dialog modal-dialog-scrollable">
...
</div>
ווערטיקלי סענטערד
לייג .modal-dialog-centered
צו .modal-dialog
צו ווערטיקלי צענטער די מאָדאַל.
<!-- 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>
מכשירים און פּאָפּאָווערס
טאָאָלטיפּס און פּאָפּאָווערס קענען זיין געשטעלט אין מאָדאַלס ווי דארף. ווען מאָדאַלז זענען פארמאכט, אַלע מכשירים און פּאָפּאָווערס ין זענען אויך אויטאָמאַטיש דיסמיסט.
<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>
ניצן די גריד
ניצן די Bootstrap גריד סיסטעם אין אַ מאָדאַל דורך נעסטינג .container-fluid
אין די .modal-body
. דערנאָך, נוצן די נאָרמאַל גריד סיסטעם קלאסן ווי איר וואָלט ווי ערגעץ אַנדערש.
<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>
וועריינג מאָדאַל אינהאַלט
האָבן אַ בינטל פון קנעפּלעך וואָס אַלע צינגל די זעלבע מאָדאַל מיט אַ ביסל אַנדערש אינהאַלט? ניצן event.relatedTarget
און HTML data-*
אַטריביוץ (עפשער דורך jQuery ) צו בייַטן די אינהאַלט פון די מאָדאַל דיפּענדינג אויף וואָס קנעפּל איז קליקט.
ונטער איז אַ לעבן דעמאָ נאכגעגאנגען דורך ביישפּיל HTML און דזשאַוואַסקריפּט. פֿאַר מער אינפֿאָרמאַציע, לייענען די מאָדאַל געשעענישן דאָקס פֿאַר דעטאַילס אויף 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)
})
טוישן אַנאַמיישאַן
דער $modal-fade-transform
וועריאַבאַל דיטערמאַנז די יבערמאַכן שטאַט פון .modal-dialog
איידער די מאָדאַל וועלקן-אין אַנאַמיישאַן, די $modal-show-transform
בייַטעוודיק דיטערמאַנז די יבערמאַכן פון .modal-dialog
אין די סוף פון די מאָדאַל וועלקן-אין אַנאַמיישאַן.
אויב איר ווילט, למשל, אַ פארגרעסער-אין אַנאַמיישאַן, איר קענען שטעלן $modal-fade-transform: scale(.8)
.
אַראָפּנעמען אַנאַמיישאַן
פֿאַר מאָדאַלס וואָס פשוט דערשייַנען אלא ווי וועלקן אין צו זען, אַראָפּנעמען די .fade
קלאַס פון דיין מאָדאַל מאַרקאַפּ.
<div class="modal" tabindex="-1" aria-labelledby="..." aria-hidden="true">
...
</div>
דינאַמיש כייץ
אויב די הייך פון אַ מאָדאַל ענדערונגען בשעת עס איז אָפן, איר זאָל רופן $('#myModal').modal('handleUpdate')
צו אַדזשאַסטיד די מאָדאַל שטעלע אין פאַל אַ סקראָלבאַר איז ארויס.
אַקסעסאַביליטי
זייט זיכער צו לייגן aria-labelledby="..."
, רעפערענסינג די מאָדאַל טיטל, צו .modal
. דערצו, איר קענט געבן אַ באַשרייַבונג פון דיין מאָדאַל דיאַלאָג מיט aria-describedby
אויף .modal
. באַמערקונג אַז איר טאָן ניט דאַרפֿן צו לייגן role="dialog"
זינט מיר שוין לייגן עס דורך דזשאַוואַסקריפּט.
עמבעדדינג יאָוטובע ווידיאס
עמבעדדינג יאָוטובע ווידיאס אין מאָדאַלז ריקווייערז נאָך דזשאַוואַסקריפּט ניט אין באָאָטסטראַפּ צו אויטאָמאַטיש האַלטן פּלייבאַק און מער. זען דעם נוציק Stack Overflow פּאָסטן פֿאַר מער אינפֿאָרמאַציע.
אָפּטיאָנאַל סיזעס
מאָדאַלס האָבן דריי אַפּשאַנאַל סיזעס, בנימצא דורך מאָדיפיער קלאסן צו זיין געשטעלט אויף אַ .modal-dialog
. די סיזעס בריק אין זיכער ברעאַקפּאָינץ צו ויסמיידן האָריזאָנטאַל סקראָלבאַרס אויף נעראָוער וויופּאָרץ.
גרייס | קלאַס | מאַקס-ברייט מאָדע |
---|---|---|
קליין | .modal-sm |
300px |
פעליקייַט | קיינער | 500px |
גרויס | .modal-lg |
800px |
עקסטרע גרויס | .modal-xl |
1140px |
אונדזער פעליקייַט מאָדאַל אָן מאָדיפיער קלאַס קאַנסטאַטוץ די "מיטל" גרייס מאָדאַל.
<div class="modal-dialog modal-xl">...</div>
<div class="modal-dialog modal-lg">...</div>
<div class="modal-dialog modal-sm">...</div>
באַניץ
די מאָדאַל פּלוגין טאַגאַלז דיין פאַרבאָרגן אינהאַלט אויף פאָדערונג, דורך דאַטן אַטריביוץ אָדער דזשאַוואַסקריפּט. עס אויך מוסיף .modal-open
צו די <body>
אָווועררייד פעליקייַט סקראָללינג נאַטור און דזשענערייץ אַ .modal-backdrop
צו צושטעלן אַ גיט געגנט פֿאַר דימיסינג געוויזן מאָדאַלז ווען קליקינג אַרויס די מאָדאַל.
דורך דאַטן אַטריביוץ
אַקטאַווייט אַ מאָדאַל אָן שרייבן דזשאַוואַסקריפּט. שטעלן data-toggle="modal"
אויף אַ קאָנטראָללער עלעמענט, ווי אַ קנעפּל, צוזאמען מיט אַ data-target="#foo"
אָדער href="#foo"
צו ציל אַ ספּעציפיש מאָדאַל צו טאַגאַל.
<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>
דורך דזשאַוואַסקריפּט
רופן אַ מאָדאַל מיט שייַן myModal
מיט אַ איין שורה פון דזשאַוואַסקריפּט:
$('#myModal').modal(options)
אָפּציעס
אָפּציעס קענען זיין דורכגעגאנגען דורך דאַטן אַטריביוץ אָדער דזשאַוואַסקריפּט. פֿאַר דאַטן אַטריביוץ, צולייגן די אָפּציע נאָמען צו data-
, ווי אין data-backdrop=""
.
נאָמען | טיפּ | פעליקייַט | באַשרייַבונג |
---|---|---|---|
באַקדראַפּ | באָאָלעאַן אָדער די שטריקל'static' |
אמת | כולל אַ מאָדאַל-באַקדראַפּ עלעמענט. אַלטערנאַטיוועלי, ספּעציפיצירן static פֿאַר אַ באַקדראַפּ וואָס טוט נישט פאַרמאַכן די מאָדאַל אויף גיט. |
קיבארד | בוליאַן | אמת | קלאָוזיז די מאָדאַל ווען אַנטלויפן שליסל איז געדריקט |
פאָקוס | בוליאַן | אמת | לייגט די פאָקוס אויף די מאָדאַל ווען ינישאַלייזד. |
ווייַזן | בוליאַן | אמת | ווייזט די מאָדאַל ווען ינישאַלייזד. |
מעטהאָדס
אַסינטשראָנאָוס מעטהאָדס און טראַנזישאַנז
אַלע אַפּי מעטהאָדס זענען ייסינגקראַנאַס און אָנהייבן אַ יבערגאַנג . זיי צוריקקומען צו די קאַללער ווי באַלד ווי די יבערגאַנג איז סטאַרטעד אָבער איידער עס ענדס . אין אַדישאַן, אַ מעטאָד רופן אויף אַ יבערגאַנג קאָמפּאָנענט וועט זיין איגנאָרירט .
זען אונדזער דזשאַוואַסקריפּט דאַקיומענטיישאַן פֿאַר מער אינפֿאָרמאַציע .
.modal(options)
אַקטאַווייץ דיין אינהאַלט ווי אַ מאָדאַל. אַקסעפּץ אַן אַפּשאַנאַל אָפּציעס object
.
$('#myModal').modal({
keyboard: false
})
.modal('toggle')
מאַניואַלי טאַגאַלז אַ מאָדאַל. קערט צו די קאַללער איידער די מאָדאַל איז אַקטשאַוואַלי געוויזן אָדער פאַרבאָרגן (ד"ה איידער די shown.bs.modal
אָדער hidden.bs.modal
געשעעניש אַקערז).
$('#myModal').modal('toggle')
.modal('show')
מאַניואַלי אָפּענס אַ מאָדאַל. קערט צו די קאַללער איידער די מאָדאַל איז אַקטשאַוואַלי געוויזן (ד"ה איידער די shown.bs.modal
געשעעניש אַקערז).
$('#myModal').modal('show')
.modal('hide')
מאַניואַלי כיידז אַ מאָדאַל. קערט צו די קאַללער איידער די מאָדאַל איז פאקטיש געווען פאַרבאָרגן (ד"ה איידער די hidden.bs.modal
געשעעניש אַקערז).
$('#myModal').modal('hide')
.modal('handleUpdate')
מאַניואַלי אַדזשאַסטיד די שטעלע פון די מאָדאַל אויב די הייך פון אַ מאָדאַל ענדערונגען ווען עס איז אָפן (ד"ה אין פאַל אַ סקראָלבאַר איז ארויס).
$('#myModal').modal('handleUpdate')
.modal('dispose')
דיסטרויז אַן עלעמענט ס מאָדאַל.
געשעענישן
Bootstrap ס מאָדאַל קלאַס יקספּאָוזיז עטלעכע געשעענישן פֿאַר כוקינג אין מאָדאַל פאַנגקשאַנאַליטי. אַלע מאָדאַל געשעענישן זענען פייערד אין די מאָדאַל זיך (ד"ה אין די <div class="modal">
).
געשעעניש טיפּ | באַשרייַבונג |
---|---|
show.bs.modal | דער געשעעניש פירט גלייך ווען דער show בייַשפּיל אופֿן איז גערופן. אויב געפֿירט דורך אַ קליק, די קליקט עלעמענט איז בנימצא ווי די relatedTarget פאַרמאָג פון דער געשעעניש. |
געוויזן.בס.מאָדאַל | דער געשעעניש איז פייערד ווען די מאָדאַל איז געווען קענטיק צו דער באַניצער (וועט וואַרטן פֿאַר CSS טראַנזישאַנז צו פאַרענדיקן). אויב געפֿירט דורך אַ קליק, די קליקט עלעמענט איז בנימצא ווי די relatedTarget פאַרמאָג פון דער געשעעניש. |
hide.bs.modal | דעם געשעעניש איז פייערד מיד ווען דער hide בייַשפּיל אופֿן איז גערופן. |
hidden.bs.modal | דער געשעעניש איז פייערד ווען די מאָדאַל איז פאַרטיק צו זיין פאַרבאָרגן פון די באַניצער (וועט וואַרטן פֿאַר CSS טראַנזישאַנז צו פאַרענדיקן). |
hidePrevented.bs.modal | דער געשעעניש איז פייערד ווען די מאָדאַל איז געוויזן, זיין באַקדראַפּ איז static און אַ גיט אַרויס די מאָדאַל אָדער אַ אַנטלויפן שליסל דריקן איז דורכגעקאָכט מיט די קלאַוויאַטור אָפּציע אָדער data-keyboard שטעלן צו false . |
$('#myModal').on('hidden.bs.modal', function (event) {
// do something...
})