使用不同的樣式和轉場建立模態對話方塊。
「模態視窗」組件包含一個覆蓋層、一個對話方塊和一個可選的關閉按鈕。您可以使用任何元素來切換模態對話方塊。若要啟用必要的 JavaScript,請新增 uk-toggle
屬性。<a>
元素需要連結到模態視窗的 ID。如果您使用其他元素(例如按鈕),只需新增 uk-toggle="target: #ID"
屬性,以目標指定模態視窗容器的 ID。
將 uk-modal
屬性新增至 <div>
元素,以建立模態視窗容器和遮蔽頁面的覆蓋層。務必新增 id
以指示要切換的元素。使用下列類別來定義模態視窗的區段。
類別 | 描述 |
---|---|
.uk-modal-dialog |
將此類別新增至子 <div> 元素,以建立對話方塊 |
.uk-modal-body |
新增此類別以在模態視窗及其內容之間建立內距。 |
.uk-modal-title |
將此類別新增至標題元素,以建立模態視窗標題。 |
.uk-modal-close |
將此類別新增至 <a> 或 <button> 元素,以建立關閉按鈕並啟用其功能。 |
<!-- This is a button toggling the modal -->
<button uk-toggle="target: #my-id" type="button"></button>
<!-- This is the modal -->
<div id="my-id" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<h2 class="uk-modal-title"></h2>
<button class="uk-modal-close" type="button"></button>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<!-- This is a button toggling the modal -->
<button class="uk-button uk-button-default uk-margin-small-right" type="button" uk-toggle="target: #modal-example">Open</button>
<!-- This is an anchor toggling the modal -->
<a href="#modal-example" uk-toggle>Open</a>
<!-- This is the modal -->
<div id="modal-example" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<h2 class="uk-modal-title">Headline</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p class="uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
<button class="uk-button uk-button-primary" type="button">Save</button>
</p>
</div>
</div>
若要建立關閉按鈕、啟用其功能並新增適當的樣式和定位,請將 .uk-modal-close-default
類別新增至 <a>
或 <button>
元素。若要將關閉按鈕放置在模態視窗之外,請新增 .uk-modal-close-outside
類別。
從 「關閉」組件新增 uk-close
屬性,以套用關閉圖示。
<div>
<div class="uk-modal-dialog">
<button class="uk-modal-close-default" type="button" uk-close></button>
</div>
</div>
<div>
<div class="uk-modal-dialog">
<button class="uk-modal-close-outside" type="button" uk-close></button>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<!-- This is a button toggling the modal with the default close button -->
<button class="uk-button uk-button-default uk-margin-small-right" type="button" uk-toggle="target: #modal-close-default">Default</button>
<!-- This is the modal with the default close button -->
<div id="modal-close-default" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<button class="uk-modal-close-default" type="button" uk-close></button>
<h2 class="uk-modal-title">Default</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
<!-- This is a button toggling the modal with the outside close button -->
<button class="uk-button uk-button-default uk-margin-small-right" type="button" uk-toggle="target: #modal-close-outside">Outside</button>
<!-- This is the modal with the outside close button -->
<div id="modal-close-outside" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<button class="uk-modal-close-outside" type="button" uk-close></button>
<h2 class="uk-modal-title">Outside</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
若要垂直置中模態視窗對話方塊,您可以使用 「邊距」組件中的 .uk-margin-auto-vertical
類別。
<div class="uk-flex-top" uk-modal>
<div class="uk-modal-dialog uk-margin-auto-vertical"></div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<a class="uk-button uk-button-default" href="#modal-center" uk-toggle>Open</a>
<div id="modal-center" class="uk-flex-top" uk-modal>
<div class="uk-modal-dialog uk-modal-body uk-margin-auto-vertical">
<button class="uk-modal-close-default" type="button" uk-close></button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
注意 模態視窗容器需要 .uk-flex-top
來支援 IE 11。
若要將模態視窗分成不同的內容區段,請使用下列類別。
類別 | 描述 |
---|---|
.uk-modal-header |
將此類別新增至 <div> 元素,以建立模態視窗頁首。 |
.uk-modal-footer |
將此類別新增至 <div> 元素,以建立模態視窗頁尾。 |
<div uk-modal>
<div class="uk-modal-dialog">
<button class="uk-modal-close-default" type="button" uk-close></button>
<div class="uk-modal-header">
<h2 class="uk-modal-title"></h2>
</div>
<div class="uk-modal-body"></div>
<div class="uk-modal-footer"></div>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<a class="uk-button uk-button-default" href="#modal-sections" uk-toggle>Open</a>
<div id="modal-sections" uk-modal>
<div class="uk-modal-dialog">
<button class="uk-modal-close-default" type="button" uk-close></button>
<div class="uk-modal-header">
<h2 class="uk-modal-title">Modal Title</h2>
</div>
<div class="uk-modal-body">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="uk-modal-footer uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
<button class="uk-button uk-button-primary" type="button">Save</button>
</div>
</div>
</div>
新增 .uk-modal-container
類別,以將模態視窗對話方塊展開至預設的 「容器」寬度。
<div class="uk-modal-container" uk-modal>…</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<a class="uk-button uk-button-default" href="#modal-container" uk-toggle>Open</a>
<div id="modal-container" class="uk-modal-container" uk-modal>
<div class="uk-modal-dialog uk-modal-body">
<button class="uk-modal-close-default" type="button" uk-close></button>
<h2 class="uk-modal-title">Headline</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
若要建立填滿整個頁面的模態視窗,請新增 .uk-modal-full
類別。也建議將 .uk-modal-close-full
類別新增至關閉按鈕,以便調整其樣式。
<div class="uk-modal-full" uk-modal>
<div class="uk-modal-dialog">
<button class="uk-modal-close-full uk-close-large" type="button" uk-close></button>
</div>
</div>
使用 「網格」和 「寬度」類別,您可以建立美觀的分割全螢幕模態視窗。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<a class="uk-button uk-button-default" href="#modal-full" uk-toggle>Open</a>
<div id="modal-full" class="uk-modal-full" uk-modal>
<div class="uk-modal-dialog">
<button class="uk-modal-close-full uk-close-large" type="button" uk-close></button>
<div class="uk-grid-collapse uk-child-width-1-2@s uk-flex-middle" uk-grid>
<div class="uk-background-cover" style="background-image: url('images/photo.jpg');" uk-height-viewport></div>
<div class="uk-padding-large">
<h1>Headline</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
</div>
</div>
</div>
根據預設,如果模態視窗的內容超出視窗高度,頁面將會隨著模態視窗捲動。若要在模態視窗內套用捲軸,請從 「實用工具」組件將 uk-overflow-auto
屬性新增至模態視窗內文。
<div uk-modal>
<div class="uk-modal-dialog" uk-overflow-auto></div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<a class="uk-button uk-button-default" href="#modal-overflow" uk-toggle>Open</a>
<div id="modal-overflow" uk-modal>
<div class="uk-modal-dialog">
<button class="uk-modal-close-default" type="button" uk-close></button>
<div class="uk-modal-header">
<h2 class="uk-modal-title">Headline</h2>
</div>
<div class="uk-modal-body" uk-overflow-auto>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="uk-modal-footer uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
<button class="uk-button uk-button-primary" type="button">Save</button>
</div>
</div>
</div>
如果您想要顯示媒體,您應該先檢查 「燈箱」組件是否已提供您需要的一切。不過,您也可以使用模態視窗來更充分地控制標記,以包裝您的媒體。
注意 請使用 「影片」組件中的 uk-video
屬性,以確保在關閉模態視窗時停止播放影片。
<div uk-modal>
<div class="uk-modal-dialog uk-width-auto">
<iframe src="" uk-video></iframe>
</div>
</div>
<p uk-margin>
<a class="uk-button uk-button-default" href="#modal-media-image" uk-toggle>Image</a>
<a class="uk-button uk-button-default" href="#modal-media-video" uk-toggle>Video</a>
<a class="uk-button uk-button-default" href="#modal-media-youtube" uk-toggle>YouTube</a>
<a class="uk-button uk-button-default" href="#modal-media-vimeo" uk-toggle>Vimeo</a>
</p>
<div id="modal-media-image" class="uk-flex-top" uk-modal>
<div class="uk-modal-dialog uk-width-auto uk-margin-auto-vertical">
<button class="uk-modal-close-outside" type="button" uk-close></button>
<img src="images/photo.jpg" width="1800" height="1200" alt="">
</div>
</div>
<div id="modal-media-video" class="uk-flex-top" uk-modal>
<div class="uk-modal-dialog uk-width-auto uk-margin-auto-vertical">
<button class="uk-modal-close-outside" type="button" uk-close></button>
<video src="https://yootheme.com/site/images/media/yootheme-pro.mp4" width="1920" height="1080" controls playsinline uk-video></video>
</div>
</div>
<div id="modal-media-youtube" class="uk-flex-top" uk-modal>
<div class="uk-modal-dialog uk-width-auto uk-margin-auto-vertical">
<button class="uk-modal-close-outside" type="button" uk-close></button>
<iframe src="https://www.youtube-nocookie.com/embed/c2pz2mlSfXA" width="1920" height="1080" loading="lazy" uk-video uk-responsive></iframe>
</div>
</div>
<div id="modal-media-vimeo" class="uk-flex-top" uk-modal>
<div class="uk-modal-dialog uk-width-auto uk-margin-auto-vertical">
<button class="uk-modal-close-outside" type="button" uk-close></button>
<iframe src="https://player.vimeo.com/video/1084537" width="1280" height="720" loading="lazy" uk-video uk-responsive></iframe>
</div>
</div>
您可以透過從一個模態視窗連結到另一個模態視窗,然後再連結回來,將多個模態視窗分組。使用此方法可在您的模態視窗內建立多步驟精靈。
<div id="modal-group-1" uk-modal>
<div class="uk-modal-dialog">
<a href="#modal-group-2" uk-toggle>Next</a>
</div>
</div>
<div id="modal-group-2" uk-modal>
<div class="uk-modal-dialog">
<a href="#modal-group-1" uk-toggle>Previous</a>
</div>
</div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<p uk-margin>
<a class="uk-button uk-button-default" href="#modal-group-1" uk-toggle>Modal 1</a>
<a class="uk-button uk-button-default" href="#modal-group-2" uk-toggle>Modal 2</a>
</p>
<div id="modal-group-1" uk-modal>
<div class="uk-modal-dialog">
<button class="uk-modal-close-default" type="button" uk-close></button>
<div class="uk-modal-header">
<h2 class="uk-modal-title">Headline 1</h2>
</div>
<div class="uk-modal-body">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="uk-modal-footer uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
<a href="#modal-group-2" class="uk-button uk-button-primary" uk-toggle>Next</a>
</div>
</div>
</div>
<div id="modal-group-2" uk-modal>
<div class="uk-modal-dialog">
<button class="uk-modal-close-default" type="button" uk-close></button>
<div class="uk-modal-header">
<h2 class="uk-modal-title">Headline 2</h2>
</div>
<div class="uk-modal-body">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div class="uk-modal-footer uk-text-right">
<button class="uk-button uk-button-default uk-modal-close" type="button">Cancel</button>
<a href="#modal-group-1" class="uk-button uk-button-primary" uk-toggle>Previous</a>
</div>
</div>
</div>
您可以將任何這些選項套用至組件屬性。使用分號分隔多個選項。深入了解
選項 | 值 | 預設 | 描述 |
---|---|---|---|
esc-close |
布林值 | true |
按下 Esc 鍵時關閉模態視窗。 |
bg-close |
布林值 | true |
按一下背景時關閉模態視窗。 |
stack |
布林值 | false |
當開啟多個模態視窗時,堆疊模態視窗。根據預設,會隱藏先前的模態視窗。 |
container |
字串 | true |
透過選取器定義目標容器,以指定應該在 DOM 中附加模態視窗的位置。將其設定為 false 將會防止此行為。 |
cls-page |
字串 | uk-modal-page |
模態視窗處於作用中時要新增至 <html> 的類別 |
cls-panel |
字串 | uk-modal-dialog |
要視為模態視窗面板之元素的類別 |
sel-close |
字串 | [class*="uk-modal-close"] |
應該觸發關閉模態視窗之所有元素的 CSS 選取器 |
深入了解 JavaScript 組件。
UIkit.modal(element, options);
將會在此組件附加的元素上觸發下列事件
名稱 | 描述 |
---|---|
beforeshow |
在顯示項目之前觸發。 |
show |
在顯示項目之後觸發。 |
shown |
在項目顯示動畫完成之後觸發。 |
beforehide |
在隱藏項目之前觸發。 |
hide |
在項目的隱藏動畫開始之後觸發。 |
hidden |
在隱藏項目之後觸發。 |
此組件可以使用下列方法
UIkit.modal(element).show();
顯示模態視窗。
UIkit.modal(element).hide();
隱藏模態視窗。
此組件隨附許多預先準備的模態視窗對話方塊,您可以將其用於使用者互動。您可以直接從 JavaScript 呼叫對話方塊,並使用回呼函式來處理使用者輸入。
程式碼 | 描述 |
---|---|
UIkit.modal.alert('UIkit 警告!') |
顯示包含一個按鈕的警示方塊。 |
UIkit.modal.confirm('UIkit 確認!') |
顯示包含您的訊息和兩個按鈕的確認對話方塊。 |
UIkit.modal.prompt('名稱:', '您的名稱') |
顯示要求文字輸入的對話方塊。 |
UIkit.modal.dialog('<p>UIkit 對話方塊!</p>'); |
顯示包含任何 HTML 內容的對話方塊。 |
若要處理使用者輸入,模態視窗使用以 Promise 為基礎的介面,此介面提供 then()
函式來註冊您的回呼函式。不過,UIkit.modal.dialog
函式會傳回模態視窗本身。
UIkit.modal.confirm('UIkit confirm!').then(function() {
console.log('Confirmed.')
}, function () {
console.log('Rejected.')
});
傳回的 Promise 具有 dialog
屬性,此屬性會保存模態視窗本身的參考。這可讓您操作模態視窗元素的標記,例如。
若要翻譯按鈕標籤,對話方塊函式會接受可選的 options
物件參數。此參數具有索引鍵 i18n
和兩個屬性 ok
和 cancel
。
const modal = UIkit.modal.confirm('UIkit confirm!', {i18n: {ok: 'okay'}}).dialog; // The modal component
const el = modal.$el; // The modal element
<p uk-margin>
<a id="js-modal-dialog" class="uk-button uk-button-default" href="#">Dialog</a>
<a id="js-modal-alert" class="uk-button uk-button-default" href="#">Alert</a>
<a id="js-modal-confirm" class="uk-button uk-button-default" href="#">Confirm</a>
<a id="js-modal-prompt" class="uk-button uk-button-default" href="#">Prompt</a>
<script>
UIkit.util.on('#js-modal-dialog', 'click', function (e) {
e.preventDefault();
e.target.blur();
UIkit.modal.dialog('<p class="uk-modal-body">UIkit dialog!</p>');
});
UIkit.util.on('#js-modal-alert', 'click', function (e) {
e.preventDefault();
e.target.blur();
UIkit.modal.alert('UIkit alert!').then(function () {
console.log('Alert closed.')
});
});
UIkit.util.on('#js-modal-confirm', 'click', function (e) {
e.preventDefault();
e.target.blur();
UIkit.modal.confirm('UIkit confirm!').then(function () {
console.log('Confirmed.')
}, function () {
console.log('Rejected.')
});
});
UIkit.util.on('#js-modal-prompt', 'click', function (e) {
e.preventDefault();
e.target.blur();
UIkit.modal.prompt('Name:', 'Your name').then(function (name) {
console.log('Prompted:', name)
});
});
</script>
</p>
「模態視窗」組件會遵守 對話方塊 (模態) WAI-ARIA 設計模式,並自動設定適當的 WAI-ARIA 角色和屬性。
dialog
角色和 aria-modal
屬性。「關閉」組件會自動設定適當的 WAI-ARIA 角色和屬性。
aria-label
屬性,如果使用 <a>
元素,則具有 button
角色。可以使用下列按鍵透過鍵盤存取「模態視窗」組件。
esc-close: false
選項,則會停用此行為。