diff --git a/README.md b/README.md index dfb75a1..014b3d9 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,9 @@ Initialize * * * ### Changelog +#### v.1.2.2 : November 5th, 2013 +* [Adding active classes to main menu button and touch-icon](https://github.com/indyplanets/flexnav/issues/67) + #### v.1.2.1 : November 4th, 2013 * [Calculate number of top level nav items with js](https://github.com/indyplanets/flexnav/issues/91) diff --git a/coffeescripts/jquery.flexnav.coffee b/coffeescripts/jquery.flexnav.coffee index 1fcf283..61f6671 100644 --- a/coffeescripts/jquery.flexnav.coffee +++ b/coffeescripts/jquery.flexnav.coffee @@ -1,5 +1,5 @@ ### - FlexNav.js 1.2.1 + FlexNav.js 1.2.2 Created by Jason Weaver http://jasonweaver.name Released under http://unlicense.org/ @@ -20,7 +20,7 @@ $.fn.flexNav = (options) -> options $nav = $(@) - + # Set some classes in the markup $nav.addClass('with-js') if settings.transitionOpacity is true @@ -83,6 +83,8 @@ $.fn.flexNav = (options) -> if $(window).width() <= breakpoint $nav.removeClass("lg-screen").addClass("sm-screen") $top_nav_items.css('width','100%') + selector = settings['buttonSelector'] + ', ' + settings['buttonSelector'] + ' .touch-button' + $(selector).removeClass('active') # Toggle nav menu closed for one pager after anchor clicked $('.one-page li a').on( 'click', -> $nav.removeClass('show') @@ -106,12 +108,13 @@ $.fn.flexNav = (options) -> $(settings['buttonSelector']).data('navEl', $nav) # Add in touch buttons - selector = '.item-with-ul, ' + settings['buttonSelector'] - $(selector).append('') + touch_selector = '.item-with-ul, ' + settings['buttonSelector'] + $(touch_selector).append('') # Toggle touch for nav menu - selector = settings['buttonSelector'] + ', ' + settings['buttonSelector'] + ' .touch-button' - $(selector).on('click', (e) -> + toggle_selector = settings['buttonSelector'] + ', ' + settings['buttonSelector'] + ' .touch-button' + $(toggle_selector).on('click', (e) -> + $(toggle_selector).toggleClass('active') e.preventDefault() e.stopPropagation() bs = settings['buttonSelector'] diff --git a/js/jquery.flexnav.js b/js/jquery.flexnav.js index 5aac07a..97e68bf 100644 --- a/js/jquery.flexnav.js +++ b/js/jquery.flexnav.js @@ -1,5 +1,5 @@ /* - FlexNav.js 1.2.1 + FlexNav.js 1.2.2 Created by Jason Weaver http://jasonweaver.name Released under http://unlicense.org/ @@ -14,7 +14,7 @@ $ = jQuery; $.fn.flexNav = function(options) { - var $nav, $top_nav_items, breakpoint, count, nav_percent, nav_width, resetMenu, resizer, selector, settings, showMenu; + var $nav, $top_nav_items, breakpoint, count, nav_percent, nav_width, resetMenu, resizer, settings, showMenu, toggle_selector, touch_selector; settings = $.extend({ 'animationSpeed': 250, 'transitionOpacity': true, @@ -68,9 +68,12 @@ } }; resizer = function() { + var selector; if ($(window).width() <= breakpoint) { $nav.removeClass("lg-screen").addClass("sm-screen"); $top_nav_items.css('width', '100%'); + selector = settings['buttonSelector'] + ', ' + settings['buttonSelector'] + ' .touch-button'; + $(selector).removeClass('active'); return $('.one-page li a').on('click', function() { return $nav.removeClass('show'); }); @@ -90,11 +93,12 @@ } }; $(settings['buttonSelector']).data('navEl', $nav); - selector = '.item-with-ul, ' + settings['buttonSelector']; - $(selector).append(''); - selector = settings['buttonSelector'] + ', ' + settings['buttonSelector'] + ' .touch-button'; - $(selector).on('click', function(e) { + touch_selector = '.item-with-ul, ' + settings['buttonSelector']; + $(touch_selector).append(''); + toggle_selector = settings['buttonSelector'] + ', ' + settings['buttonSelector'] + ' .touch-button'; + $(toggle_selector).on('click', function(e) { var $btnParent, $thisNav, bs; + $(toggle_selector).toggleClass('active'); e.preventDefault(); e.stopPropagation(); bs = settings['buttonSelector']; diff --git a/js/jquery.flexnav.min.js b/js/jquery.flexnav.min.js index ce44b2b..46cce50 100644 --- a/js/jquery.flexnav.min.js +++ b/js/jquery.flexnav.min.js @@ -1,2 +1,2 @@ /*! flexnav https://github.com/indyplanets/flexnav http://unlicense.org/ 2013-11-05 */ -!function(){var a;a=jQuery,a.fn.flexNav=function(b){var c,d,e,f,g,h,i,j,k,l,m;return l=a.extend({animationSpeed:250,transitionOpacity:!0,buttonSelector:".menu-button",hoverIntent:!1,hoverIntentTimeout:150},b),c=a(this),c.addClass("with-js"),l.transitionOpacity===!0&&c.addClass("opacity"),c.find("li").each(function(){return a(this).has("ul").length?a(this).addClass("item-with-ul").find("ul").hide():void 0}),d=c.find(">li"),f=d.length,h=100/f,g=h+"%",c.data("breakpoint")&&(e=c.data("breakpoint")),m=function(){return c.hasClass("lg-screen")===!0?l.transitionOpacity===!0?a(this).find(">ul").addClass("show").stop(!0,!0).animate({height:["toggle","swing"],opacity:"toggle"},l.animationSpeed):a(this).find(">ul").addClass("show").stop(!0,!0).animate({height:["toggle","swing"]},l.animationSpeed):void 0},i=function(){return c.hasClass("lg-screen")===!0&&a(this).find(">ul").hasClass("show")===!0?l.transitionOpacity===!0?a(this).find(">ul").removeClass("show").stop(!0,!0).animate({height:["toggle","swing"],opacity:"toggle"},l.animationSpeed):a(this).find(">ul").removeClass("show").stop(!0,!0).animate({height:["toggle","swing"]},l.animationSpeed):void 0},j=function(){if(a(window).width()<=e)return c.removeClass("lg-screen").addClass("sm-screen"),d.css("width","100%"),a(".one-page li a").on("click",function(){return c.removeClass("show")});if(a(window).width()>e){if(c.removeClass("sm-screen").addClass("lg-screen"),d.css("width",g),c.removeClass("show"),l.hoverIntent===!0)return a(".item-with-ul").hoverIntent({over:m,out:i,timeout:l.hoverIntentTimeout});if(l.hoverIntent===!1)return a(".item-with-ul").on("mouseenter",m).on("mouseleave",i)}},a(l.buttonSelector).data("navEl",c),k=".item-with-ul, "+l.buttonSelector,a(k).append(''),k=l.buttonSelector+", "+l.buttonSelector+" .touch-button",a(k).on("click",function(b){var c,d,e;return b.preventDefault(),b.stopPropagation(),e=l.buttonSelector,c=a(this).is(e)?a(this):a(this).parent(e),d=c.data("navEl"),d.toggleClass("show")}),a(".touch-button").on("click",function(){var b,d;return b=a(this).parent(".item-with-ul").find(">ul"),d=a(this).parent(".item-with-ul").find(">span.touch-button"),c.hasClass("lg-screen")===!0&&a(this).parent(".item-with-ul").siblings().find("ul.show").removeClass("show").hide(),b.hasClass("show")===!0?(b.removeClass("show").slideUp(l.animationSpeed),d.removeClass("active")):b.hasClass("show")===!1?(b.addClass("show").slideDown(l.animationSpeed),d.addClass("active")):void 0}),c.find(".item-with-ul *").focus(function(){return a(this).parent(".item-with-ul").parent().find(".open").not(this).removeClass("open").hide(),a(this).parent(".item-with-ul").find(">ul").addClass("open").show()}),j(),a(window).on("resize",j)}}.call(this); \ No newline at end of file +!function(){var a;a=jQuery,a.fn.flexNav=function(b){var c,d,e,f,g,h,i,j,k,l,m,n;return k=a.extend({animationSpeed:250,transitionOpacity:!0,buttonSelector:".menu-button",hoverIntent:!1,hoverIntentTimeout:150},b),c=a(this),c.addClass("with-js"),k.transitionOpacity===!0&&c.addClass("opacity"),c.find("li").each(function(){return a(this).has("ul").length?a(this).addClass("item-with-ul").find("ul").hide():void 0}),d=c.find(">li"),f=d.length,h=100/f,g=h+"%",c.data("breakpoint")&&(e=c.data("breakpoint")),l=function(){return c.hasClass("lg-screen")===!0?k.transitionOpacity===!0?a(this).find(">ul").addClass("show").stop(!0,!0).animate({height:["toggle","swing"],opacity:"toggle"},k.animationSpeed):a(this).find(">ul").addClass("show").stop(!0,!0).animate({height:["toggle","swing"]},k.animationSpeed):void 0},i=function(){return c.hasClass("lg-screen")===!0&&a(this).find(">ul").hasClass("show")===!0?k.transitionOpacity===!0?a(this).find(">ul").removeClass("show").stop(!0,!0).animate({height:["toggle","swing"],opacity:"toggle"},k.animationSpeed):a(this).find(">ul").removeClass("show").stop(!0,!0).animate({height:["toggle","swing"]},k.animationSpeed):void 0},j=function(){var b;if(a(window).width()<=e)return c.removeClass("lg-screen").addClass("sm-screen"),d.css("width","100%"),b=k.buttonSelector+", "+k.buttonSelector+" .touch-button",a(b).removeClass("active"),a(".one-page li a").on("click",function(){return c.removeClass("show")});if(a(window).width()>e){if(c.removeClass("sm-screen").addClass("lg-screen"),d.css("width",g),c.removeClass("show"),k.hoverIntent===!0)return a(".item-with-ul").hoverIntent({over:l,out:i,timeout:k.hoverIntentTimeout});if(k.hoverIntent===!1)return a(".item-with-ul").on("mouseenter",l).on("mouseleave",i)}},a(k.buttonSelector).data("navEl",c),n=".item-with-ul, "+k.buttonSelector,a(n).append(''),m=k.buttonSelector+", "+k.buttonSelector+" .touch-button",a(m).on("click",function(b){var c,d,e;return a(m).toggleClass("active"),b.preventDefault(),b.stopPropagation(),e=k.buttonSelector,c=a(this).is(e)?a(this):a(this).parent(e),d=c.data("navEl"),d.toggleClass("show")}),a(".touch-button").on("click",function(){var b,d;return b=a(this).parent(".item-with-ul").find(">ul"),d=a(this).parent(".item-with-ul").find(">span.touch-button"),c.hasClass("lg-screen")===!0&&a(this).parent(".item-with-ul").siblings().find("ul.show").removeClass("show").hide(),b.hasClass("show")===!0?(b.removeClass("show").slideUp(k.animationSpeed),d.removeClass("active")):b.hasClass("show")===!1?(b.addClass("show").slideDown(k.animationSpeed),d.addClass("active")):void 0}),c.find(".item-with-ul *").focus(function(){return a(this).parent(".item-with-ul").parent().find(".open").not(this).removeClass("open").hide(),a(this).parent(".item-with-ul").find(">ul").addClass("open").show()}),j(),a(window).on("resize",j)}}.call(this); \ No newline at end of file