---
-## Off-canvas from Any Direction
+## Vertical Off-canvas
-In addition to left and right off-canvas menus, you can also have top or bottom off-canvases as well.
+In addition to left and right off-canvas menus, you can have vertical off-canvases as well.
```html
<body>
<div class="off-canvas-wrapper">
<div class="off-canvas-wrapper-inner" data-off-canvas-wrapper>
<div class="off-canvas position-top" id="offCanvasTop" data-off-canvas data-position="top"></div>
- <div class="off-canvas position-bottom" id="offCanvasBottom" data-off-canvas data-position="bottom"></div>
<div class="off-canvas-content" data-off-canvas-content></div>
</div>
</div>
```
<button class="button" type="button" data-toggle="offCanvasTop">Open Top Menu</button>
-<button class="button" type="button" data-toggle="offCanvasBottom">Open Bottom Menu</button>
<div class="primary callout">
- <p>When using the `title-bar`, the title-bar icons are still either `title-bar-left` or `title-bar-right`, but the off-canvas can be set to top or bottom.</p>
+ <p>When using the `title-bar` with a vertical off-canvas, the title-bar icons are still either `title-bar-left` or `title-bar-right`.</p>
</div>
```html_example
<div class="title-bar">
<div class="title-bar-left">
<button class="menu-icon" type="button" data-open="offCanvasTop"></button>
- <span class="title-bar-title">Foundation title bar with vertical off-canvas</span>
+ <span class="title-bar-title">Foundation title bar with top off-canvas</span>
</div>
<div class="title-bar-right">
- <button class="menu-icon" type="button" data-open="offCanvasBottom"></button>
+ <button class="menu-icon" type="button" data-open="offCanvasTop"></button>
</div>
</div>
```
<span aria-hidden="true">×</span>
</button>
<ul class="mobile-ofc vertical menu">
-
+
<li>
<a href="http://foundation.zurb.com/learn/about.html">Learn</a>
<ul class="submenu menu vertical" data-submenu>
- <li><a href="http://foundation.zurb.com/learn/about.html">About Foundation</a></li>
+ <li><a href="http://foundation.zurb.com/learn/about.html">About Foundation</a></li>
<li><a href="http://foundation.zurb.com/learn/tutorials.html">Tutorials</a></li>
<li><a href="http://foundation.zurb.com/learn/classes.html">Classes</a></li>
<li><a href="http://foundation.zurb.com/learn/case-studies.html">Case Studies</a></li>
- <li><a href="http://foundation.zurb.com/learn/brands.html">Brands</a></li>
+ <li><a href="http://foundation.zurb.com/learn/brands.html">Brands</a></li>
</ul>
</li>
-
+
<li>
<a href="http://foundation.zurb.com/develop/getting-started.html">Develop</a>
<ul class="submenu menu vertical" data-submenu>
</li>
<li><a href="http://foundation.zurb.com/upload.html">Upload</a></li>
-
+
<li>
<a href="http://foundation.zurb.com/support/support.html">Support</a>
<ul class="submenu menu vertical" data-submenu>
<li><a href="http://foundation.zurb.com/support/faq.html">FAQs</a></li>
</ul>
</li>
-
+
<li>
<a href="http://foundation.zurb.com/frameworks-docs.html">Docs</a>
<ul class="submenu menu vertical" data-submenu>
<li><a href="http://zurb.com/ink/docs.php" target="_blank">Email Docs</a></li>
</ul>
</li>
-
+
<li><a href="http://foundation.zurb.com/develop/getting-started.html" class="button">Getting Started</a></li>
</ul>
<li><a href="#">Top</a></li>
</ul>
</div>
-
-<div class="off-canvas position-bottom" id="offCanvasBottom" data-off-canvas data-position="bottom">
- <button class="close-button" aria-label="Close menu" type="button" data-close>
- <span aria-hidden="true">×</span>
- </button>
- <ul class="mobile-ofc vertical menu">
- <li><a href="#">Off-canvas</a></li>
- <li><a href="#">Example</a></li>
- <li><a href="#">Vertical</a></li>
- <li><a href="#">Menu</a></li>
- <li><a href="#">From</a></li>
- <li><a href="#">The</a></li>
- <li><a href="#">Bottom</a></li>
- </ul>
-</div>
/// @type Color
$offcanvas-exit-background: rgba($white, 0.25) !default;
-/// Height of a top or bottom off-canvas menu.
+/// Height of a vertical off-canvas menu.
/// @type Number
$offcanvas-vertical-size: 250px !default;
top: -$vertical-size;
width: 100%;
}
- @else if $position == bottom {
- bottom: -$vertical-size;
- width: 100%;
- }
// Generates an open state class that matches the width of the menu
@at-root {
@else if $position == top {
transform: translateY($vertical-size);
}
- @else if $position == bottom {
- transform: translateY(-$vertical-size);
- }
}
}
}
&.position-left { @include off-canvas-position(left); }
&.position-right { @include off-canvas-position(right); }
&.position-top { @include off-canvas-position(top); }
- &.position-bottom { @include off-canvas-position(bottom); }
}
// Reveal off-canvas menu on larger screens
@include off-canvas-reveal(right);
}
- .position-right.reveal-for-#{$name} {
+ .position-top.reveal-for-#{$name} {
@include off-canvas-reveal(top);
}
-
- .position-right.reveal-for-#{$name} {
- @include off-canvas-reveal(bottom);
- }
}
}
}