--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/wp/wp-content/themes/IN-MOTION-package-u1/in-motion/js/jquery.nav.js Wed Nov 06 03:21:17 2013 +0000
@@ -0,0 +1,135 @@
+/*
+ * jQuery One Page Nav Plugin
+ * http://github.com/davist11/jQuery-One-Page-Nav
+ *
+ * Copyright (c) 2010 Trevor Davis (http://trevordavis.net)
+ * Dual licensed under the MIT and GPL licenses.
+ * Uses the same license as jQuery, see:
+ * http://jquery.org/license
+ *
+ * @version 0.7
+ *
+ * Example usage:
+ * $('#nav').onePageNav({
+ * currentClass: 'current',
+ * changeHash: false,
+ * scrollSpeed: 750
+ * });
+ */
+;(function($) {
+ $.fn.onePageNav = function(options) {
+ var opts = $.extend({}, $.fn.onePageNav.defaults, options),
+ onePageNav = {};
+
+ onePageNav.sections = {};
+
+ onePageNav.bindNav = function($el, $this, o) {
+ var $par = $el.parent(),
+ newLoc = $el.attr('href'),
+ $win = $(window);
+
+ if(!$par.hasClass(o.currentClass)) {
+ if(o.begin) {
+ o.begin();
+ }
+ onePageNav.adjustNav($this, $par, o.currentClass);
+ $win.unbind('.onePageNav');
+ $.scrollTo(newLoc, o.scrollSpeed, {
+ offset: {
+ top: -o.scrollOffset
+ },
+ onAfter: function() {
+ if(o.changeHash) {
+ window.location.hash = newLoc;
+ }
+ $win.bind('scroll.onePageNav', function() {
+ onePageNav.scrollChange($this, o);
+ });
+ if(o.end) {
+ o.end();
+ }
+ }
+ });
+ }
+ };
+
+ onePageNav.adjustNav = function($this, $el, curClass) {
+ $this.find('.'+curClass).removeClass(curClass);
+ $el.addClass(curClass);
+ };
+
+ onePageNav.getPositions = function($this, o) {
+ $this.find('a').each(function() {
+ var linkHref = $(this).attr('href'),
+ divPos = $(linkHref).offset(),
+ topPos = divPos.top;
+
+ onePageNav.sections[linkHref.substr(1)] = Math.round(topPos) - o.scrollOffset;
+ });
+ };
+
+ onePageNav.getSection = function(windowPos) {
+ var returnValue = '',
+ windowHeight = Math.round($(window).height() / 2);
+
+ for(var section in onePageNav.sections) {
+ if((onePageNav.sections[section] - windowHeight) < windowPos) {
+ returnValue = section;
+ }
+ }
+ return returnValue;
+ };
+
+ onePageNav.scrollChange = function($this, o) {
+ onePageNav.getPositions($this, o);
+
+ var windowTop = $(window).scrollTop(),
+ position = onePageNav.getSection(windowTop);
+
+ if(position !== '') {
+ onePageNav.adjustNav($this,$this.find('a[href=#'+position+']').parent(), o.currentClass);
+ }
+ };
+
+ onePageNav.init = function($this, o) {
+ var didScroll = false;
+
+ $this.find('a').bind('click', function(e) {
+ onePageNav.bindNav($(this), $this, o);
+ e.preventDefault();
+ });
+
+ onePageNav.getPositions($this, o);
+
+ $(window).bind('scroll.onePageNav', function() {
+ didScroll = true;
+ });
+
+ setInterval(function() {
+ if(didScroll) {
+ didScroll = false;
+ onePageNav.scrollChange($this, o);
+ }
+ }, 250);
+ };
+
+ return this.each(function() {
+ var $this = $(this),
+ o = $.meta ? $.extend({}, opts, $this.data()) : opts;
+
+ onePageNav.init($this, o);
+
+ });
+ };
+
+ // default options
+ $.fn.onePageNav.defaults = {
+ currentClass: 'current',
+ changeHash: false,
+ scrollSpeed: 0,
+ scrollOffset: 0,
+ begin: false,
+ end: false
+ };
+
+})(jQuery);
\ No newline at end of file