uikit
Version:
UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.
498 lines (391 loc) • 26.7 kB
HTML
<html lang="en-gb" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Drop - UIkit tests</title>
<script src="js/test.js"></script>
<style>
.boundary {
padding: 15px;
border: 1px dashed rgba(0,0,0,0.2);
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.boundary-overflow { width: 200%; }
</style>
</head>
<body>
<div class="uk-container">
<h1>Drop</h1>
<div class="uk-margin" uk-margin>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Hover, Click</button>
<div id="parent-drop" uk-drop>
<div id="parent-drop-card" class="uk-card uk-card-body uk-card-default">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<button class="uk-button uk-button-primary uk-width-1-1" type="button">Hover</button>
<div id="child-drop" uk-drop="pos: right-center; offset: 50">
<div id="child-drop-card" class="uk-card uk-card-body uk-card-default">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<button class="uk-button uk-button-primary uk-width-1-1" type="button">Hover</button>
<div id="child-child-drop" uk-drop="pos: right-center; offset: 50">
<div id="child-child-drop-card" class="uk-card uk-card-body uk-card-default">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<button class="uk-button uk-button-primary uk-width-1-1" type="button">Hover</button>
<div id="child-child-child-drop" uk-drop="pos: right-center; offset: 50">
<div id="child-child-child-drop-card" class="uk-card uk-card-body uk-card-default">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Click only</button>
<div id="parent-drop-click" uk-drop="mode: click">
<div id="parent-drop-card-click" class="uk-card uk-card-body uk-card-default">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<button class="uk-button uk-button-primary uk-width-1-1" type="button">Click</button>
<div id="child-drop-click" uk-drop="pos: right-center; offset: 50; mode: click">
<div id="child-drop-card-click" class="uk-card uk-card-body uk-card-default">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<button class="uk-button uk-button-primary uk-width-1-1" type="button">Click</button>
<div id="child-child-drop-click" uk-drop="pos: right-center; offset: 50; mode: click">
<div id="child-child-drop-card-click" class="uk-card uk-card-body uk-card-default">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
<button class="uk-button uk-button-primary uk-width-1-1" type="button">Click</button>
<div id="child-child-child-drop-click" uk-drop="pos: right-center; offset: 50; mode: click">
<div id="child-child-child-drop-card-click" class="uk-card uk-card-body uk-card-default">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Hover only</button>
<div uk-drop="mode: hover; delay-hide: 0">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
<h2>Position</h2>
<div class="uk-margin" uk-margin>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Bottom Left</button>
<div uk-drop>
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Bottom Center</button>
<div uk-drop="pos: bottom-center">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Bottom Right</button>
<div uk-drop="pos: bottom-right">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Bottom Justify</button>
<div uk-drop="pos: bottom-justify">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
<div class="uk-margin" uk-margin>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Top Left</button>
<div uk-drop="pos: top-left">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Top Center</button>
<div uk-drop="pos: top-center">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Top Right</button>
<div uk-drop="pos: top-right">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Top Justify</button>
<div uk-drop="pos: top-justify">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
<div class="uk-margin" uk-margin>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Left Top</button>
<div uk-drop="pos: left-top">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Left Center</button>
<div uk-drop="pos: left-center">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Left Bottom</button>
<div uk-drop="pos: left-bottom">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
<div class="uk-margin" uk-margin>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Right Top</button>
<div uk-drop="pos: right-top">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Right Center</button>
<div uk-drop="pos: right-center">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button">Right Bottom</button>
<div uk-drop="pos: right-bottom">
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
<h2>Shift and Flip</h2>
<div class="uk-margin">
<select id="js-boundary-overflow-switcher" class="uk-select uk-form-width-small">
<option value="">Resize</option>
<option value="boundary-overflow">Scroll</option>
</select>
</div>
<div uk-grid>
<div class="uk-width-1-2@m">
<div class="boundary uk-height-large uk-resize-horizontal uk-margin">
<div class="js-boundary-overflow uk-flex uk-flex-center">
<div>
<button class="uk-button uk-button-default" type="button">Click</button>
<div class="uk-width-medium" uk-dropdown="pos: bottom-left; boundary: !.boundary; mode: click">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
</div>
<div class="uk-width-1-2@m">
<div class="boundary uk-height-large uk-resize-horizontal uk-margin">
<div class="js-boundary-overflow uk-flex uk-flex-center">
<div>
<button class="uk-button uk-button-default" style="margin-left: 40px" type="button">Click</button>
<div class="uk-width-small" uk-dropdown="pos: right-top; boundary: !.boundary; mode: click">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
</div>
</div>
<h2>Boundary</h2>
<div class="uk-child-width-1-2@m" uk-grid>
<div>
<div class="boundary uk-height-medium uk-margin uk-flex uk-flex-between uk-flex-wrap">
<div>
<button class="uk-button uk-button-default" type="button">Bottom Right</button>
<div class="uk-width-medium" uk-dropdown="pos: bottom-right; boundary: !.boundary">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Bottom Center</button>
<div class="uk-width-medium" uk-dropdown="pos: bottom-center; boundary: !.boundary">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Bottom Left</button>
<div class="uk-width-medium" uk-dropdown="pos: bottom-left; boundary: !.boundary">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
<div>
<div class="boundary uk-height-medium uk-flex uk-flex-column uk-flex-between uk-flex-wrap">
<div>
<button class="uk-button uk-button-default" type="button">Right Bottom</button>
<div class="uk-width-medium" uk-dropdown="pos: right-bottom; boundary: !.boundary">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Right Center</button>
<div class="uk-width-medium" uk-dropdown="pos: right-center; boundary: !.boundary">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Right Top</button>
<div class="uk-width-medium" uk-dropdown="pos: right-top; boundary: !.boundary">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
</div>
<h2>Boundary Align</h2>
<div class="uk-child-width-1-2@m" uk-grid>
<div>
<div class="boundary uk-margin uk-flex uk-flex-around uk-flex-wrap" uk-margin>
<div>
<button class="uk-button uk-button-default" type="button">Bottom Right</button>
<div class="uk-width-medium" uk-dropdown="pos: bottom-right; boundary: !.boundary; boundary-align: true">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Bottom Center</button>
<div class="uk-width-medium" uk-dropdown="pos: bottom-center; boundary: !.boundary; boundary-align: true">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Bottom Left</button>
<div class="uk-width-medium" uk-dropdown="pos: bottom-left; boundary: !.boundary; boundary-align: true">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Bottom Justify</button>
<div class="uk-width-medium" uk-dropdown="pos: bottom-justify; boundary: ! .boundary; boundary-align: true">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
<div class="uk-width-auto">
<div class="boundary uk-height-medium uk-flex uk-flex-column uk-flex-around">
<div>
<button class="uk-button uk-button-default" type="button">Right Bottom</button>
<div class="uk-width-medium" uk-dropdown="pos: right-bottom; boundary: !.boundary; boundary-align: true">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Right Center</button>
<div class="uk-width-medium" uk-dropdown="pos: right-center; boundary: !.boundary; boundary-align: true">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Right Top</button>
<div class="uk-width-medium" uk-dropdown="pos: right-top; boundary: !.boundary; boundary-align: true">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
<div>
<button class="uk-button uk-button-default" type="button">Right Justify</button>
<div class="uk-width-medium" uk-dropdown="pos: right-justify; boundary: ! .boundary; boundary-align: true">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
</div>
<h2>Multiple Toggles</h2>
<div class="uk-margin" uk-margin>
<div class="uk-inline">
<button class="uk-button uk-button-default" type="button" uk-toggle="target: ~div; mode: click,hover">Same</button>
<button class="uk-button uk-button-default" type="button" uk-toggle="target: ~div; mode: click,hover">Same</button>
<button class="uk-button uk-button-default" type="button">Target</button>
<div uk-drop>
<div class="uk-card uk-card-body uk-card-default">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
</div>
</div>
</div>
<h2>JavaScript Options</h2>
<div class="uk-overflow-auto">
<table class="uk-table uk-table-striped">
<thead>
<tr>
<th>Option</th>
<th>Value</th>
<th>Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>toggle</code></td>
<td>String, Boolean</td>
<td>'- *'</td>
<td>CSS selector for the element to be used as toggle. By default, the preceding element is used.</td>
</tr>
<tr>
<td><code>pos</code></td>
<td>String</td>
<td>'bottom-left'</td>
<td>Drop position.</td>
</tr>
<tr>
<td><code>mode</code></td>
<td>hover | click</td>
<td>click,hover</td>
<td>Comma separated list of drop trigger behaviour modes.</td>
</tr>
<tr>
<td><code>delay-show</code></td>
<td>Number</td>
<td>0</td>
<td>Delay time in hover mode before a Drop is shown in ms.</td>
</tr>
<tr>
<td><code>delay-hide</code></td>
<td>Number</td>
<td>800</td>
<td>Delay time in hover mode before a Drop is hidden in ms.</td>
</tr>
<tr>
<td><code>display</code></td>
<td>`dynamic`|`static`</td>
<td>`dynamic`</td>
<td>Disable dynamic positioning while scrolling by setting this option to `static`.</td>
</tr>
<tr>
<td><code>boundary</code></td>
<td>CSS selector</td>
<td>true</td>
<td>The area that the element will be checked for overflow, causing the Drop to flip. By default, it's the scrolling containers of the Drop's element.</td>
</tr>
<tr>
<td><code>boundary-align</code></td>
<td>Boolean</td>
<td>false</td>
<td>Align Drop to boundary.</td>
</tr>
<tr>
<td><code>flip</code></td>
<td>false|true|'x'|'y'</td>
<td>true</td>
<td>Automatic Drop flip.</td>
</tr>
<tr>
<td><code>offset</code></td>
<td>Number</td>
<td>0</td>
<td>The offset of the Drop container.</td>
</tr>
<tr>
<td><code>animation</code></td>
<td>String</td>
<td>false</td>
<td>The space separated names of animations to use.</td>
</tr>
<tr>
<td><code>duration</code></td>
<td>Number</td>
<td>200</td>
<td>The animation duration.</td>
</tr>
</tbody>
</table>
</div>
</div>
<script>
var options = UIkit.util.$$('#js-boundary-overflow-switcher option').map(function (option) { return option.value; });
UIkit.util.on('#js-boundary-overflow-switcher', 'change', function () {
var value = this.value;
UIkit.util.$$('.js-boundary-overflow').forEach(function (table) {
UIkit.util.removeClass(table, options);
UIkit.util.addClass(table, value);
});
});
</script>
</body>
</html>