seanuk / flexnav

A Device Agnostic Approach to Complex Site Navigation

Home Page:http://jasonweaver.name/lab/flexiblenavigation/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FlexNav jQuery Plugin

A Device Agnostic Approach to Complex Site Navigation

The Details

A mobile-first example of using media queries and jQuery to make a decent site menu with drop downs. Special attention is paid to touch screens using click events. This is something I use to test different navigation techniques and may change as I iterate over different solutions to the problem. Basically I want a simple model to build upon when working on sites from scratch.

Usage

Add flexnav.css to the head of your document

	<link href="css/flexnav.css" rel="stylesheet" type="text/css" / >

Add jQuery and jquery.flexnav.js to the head of your document

	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
	<script type="text/javascript" src="js/jquery.flexnav.js"></script>

Initialize FlexNav right before your closing body tag

	<script>
		$("[role='navigation']").flexNav();
	</script>		

you can change the defaults too

	<script>
		$("[role='navigation']").flexNav({
			'breakpoint' : '800', // default
			'animationSpeed' : 'fast' // default			
		});			
	</script>	

Todo

  • Add all class names to markup via js
  • Add in span elements via js for touch targets on touch screens

v.0.2 : July 4th, 2012

  • Changed to jQuery Plugin
  • No more Modernizr - Uses a simple function to detect touch screens

v.0.3 : July 8th, 2012

  • Close menu after click/touch of menu links (makes sense for single page navigation with anchors)

v.0.3.1 : January 16th, 2013

  • Got rid of js that closes menu after click/touch of menu links (caused more trouble than it was worth leaving it in)
  • Started support for multi-level sub menus

v.0.3.2 : January 17th, 2013

  • Started adding class names via js

About

A Device Agnostic Approach to Complex Site Navigation

http://jasonweaver.name/lab/flexiblenavigation/