formstone
Version:
Library of modular front end components.
248 lines (182 loc) • 7.77 kB
Markdown
# Navigation
A jQuery plugin for simple responsive navigation.
<!-- HEADER END -->
<!-- NAV START -->
* [Use](#use)
* [Options](#options)
* [Events](#events)
* [Methods](#methods)
* [CSS](#css)
<!-- NAV END -->
<!-- DEMO BUTTON -->
<a name="use"></a>
## Using Navigation
#### Main
```markup
navigation.js
navigation.css
```
#### Dependencies
```markup
jQuery
core.js
mediaquery.js
swap.js
```
### Basic
Navigation will automatically turn a basic navigation into a mobile friendly system. Links can be styled independently:
```javascript
$("nav").navigation();
```
```markup
<h4 id="handle">Navigation</h4>
<nav data-navigation-handle="#handle">
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Contact</a>
</nav>
```
### Breakpoint
By default, Navigation will enable itself on screens smaller then 980 pixels wide. Specify a different width by setting the `maxWidth` option on initialization.
```javascript
$("nav").navigation({
maxWidth: "740px"
});
```
### Off Canvas
Navigation can also slide out from the left or right hand side of the screen. The nav can 'push' the main page content by specifying the `data-navigation-content` attribute:
```javascript
$("nav").navigation();
```
```markup
<h4 id="handle">Navigation</h4>
<nav data-navigation-handle="#handle" data-navigation-content="#content">
<a href="#">Home</a>
<a href="#">About</a>
<a href="#">Contact</a>
</nav>
<div id="content">
...
</nav>
```
<h3>Events</h3>
React to the navigation by listening for the `open.navigation` and `close.navigation` events:
```javascript
$("nav").on("open.navigation", function() {
// ...
}).on("close.navigation", function() {
// ...
});
```
<a name="options"></a>
## Options
Set instance options by passing a valid object at initialization, or to the public `defaults` method. Custom options for a specific instance can also be set by attaching a `data-navigation-options` attribute to the target elment. This attribute should contain the properly formatted JSON object representing the custom options.
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `customClass` | `string` | `''` | Class applied to instance |
| `gravity` | `string` | `'left'` | Gravity of 'push', 'reveal' and 'overlay' navigation; 'right', 'left' |
| `label` | `boolean` | `true` | Display handle width label |
| `labels.closed` | `string` | `'Menu'` | Closed state text |
| `labels.open` | `string` | `'Close'` | Open state text |
| `maxWidth` | `string` | `'980px'` | Width at which to auto-disable plugin |
| `theme` | `string` | `"fs-light"` | Theme class name |
| `type` | `string` | `'toggle'` | Type of navigation; 'toggle', 'push', 'reveal', 'overlay' |
<hr>
<a name="events"></a>
## Events
Events are triggered on the target instance's element, unless otherwise stated.
| Event | Description |
| --- | --- |
| `open.navigation` | Navigation opened |
| `close.navigation` | Navigation closed |
<hr>
<a name="methods"></a>
## Methods
Methods are publicly available to all active instances, unless otherwise stated.
### close
Closes instance.
```javascript
$(".target").navigation("close");
```
### defaults
Extends plugin default settings; effects instances created hereafter.
```javascript
$.navigation("defaults", { ... });
```
#### Parameters
| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `options` | `object` | `{}` | New plugin defaults |
### destroy
Removes plugin instance.
```javascript
$(".target").navigation("destroy");
```
### disable
Disables instance.
```javascript
$(".target").navigation("disable");
```
### enable
Enables instance.
```javascript
$(".target").navigation("enable");
```
### open
Opens instance.
```javascript
$(".target").navigation("open");
```
<hr>
<a name="css"></a>
## CSS
| Class | Type | Description |
| --- | --- | --- |
| `.fs-navigation-element` | `element` | Target elmement |
| `.fs-navigation` | `element` | Base widget class |
| `.fs-navigation-toggle-nav` | `element` | Toggle navigation |
| `.fs-navigation-toggle-nav.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-toggle-nav.fs-navigation-open` | `modifier` | Indicates open state |
| `.fs-navigation-toggle-handle` | `element` | Toggle handle |
| `.fs-navigation-toggle-handle.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-toggle-handle.fs-navigation-open` | `modifier` | Indicates open state |
| `.fs-navigation-overlay-nav` | `element` | Overlay nav |
| `.fs-navigation-overlay-nav.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-overlay-nav.fs-navigation-animated` | `modifier` | Indicates animated state |
| `.fs-navigation-overlay-nav.fs-navigation-open` | `modifier` | Indicates open state |
| `.fs-navigation-overlay-left-nav` | `modifier` | Indicates left hand nav |
| `.fs-navigation-overlay-right-nav` | `modifier` | Indicates right hand nav |
| `.fs-navigation-push-nav` | `element` | Push nav |
| `.fs-navigation-push-nav.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-push-nav.fs-navigation-animated` | `modifier` | Indicates animated state |
| `.fs-navigation-push-nav.fs-navigation-open` | `modifier` | Indicates open state |
| `.fs-navigation-push-left-nav` | `modifier` | Indicates left hand nav |
| `.fs-navigation-push-right-nav` | `modifier` | Indicates right hand nav |
| `.fs-navigation-reveal-nav` | `element` | Reveal nav |
| `.fs-navigation-reveal-nav.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-reveal-nav.fs-navigation-animated` | `modifier` | Indicates animated state |
| `.fs-navigation-reveal-nav.fs-navigation-open` | `modifier` | Indicates open state |
| `.fs-navigation-reveal-left-nav` | `modifier` | Indicates left hand nav |
| `.fs-navigation-reveal-right-nav` | `modifier` | Indicates right hand nav |
| `.fs-navigation-overlay-handle` | `element` | Overlay handle |
| `.fs-navigation-overlay-handle.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-push-handle` | `element` | Push handle |
| `.fs-navigation-push-handle.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-overlay-content:before` | `element` | Overlay mask |
| `.fs-navigation-overlay-content.fs-navigation-open:before` | `modifier` | Indicates open state |
| `.fs-navigation-push-content` | `element` | Target page content |
| `.fs-navigation-push-content.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-push-content.fs-navigation-animated` | `modifier` | Indicates animted state |
| `.fs-navigation-push-content.fs-navigation-open` | `modifier` | Indicates open state |
| `.fs-navigation-push-left-content` | `modifier` | Indicates left hand nav |
| `.fs-navigation-push-right-content` | `modifier` | Indicates right hand nav |
| `.fs-navigation-reveal-content` | `element` | Target page content |
| `.fs-navigation-reveal-content.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-reveal-content.fs-navigation-animated` | `modifier` | Indicates animted state |
| `.fs-navigation-reveal-content.fs-navigation-open` | `modifier` | Indicates open state |
| `.fs-navigation-reveal-left-content` | `modifier` | Indicates left hand nav |
| `.fs-navigation-reveal-right-content` | `modifier` | Indicates right hand nav |
| `.fs-navigation-handle` | `element` | Click target to toggle navigation |
| `.fs-navigation-handle.fs-navigation-open` | `modifier` | Indicates open state |
| `.fs-navigation-handle.fs-navigation-enabled` | `modifier` | Indicates enabled state |
| `.fs-navigation-lock` | `modifier` | Indicates locked state; Applied to body element |