diff --git a/css/area_sidetools.less b/css/area_sidetools.less index e722139..0bca9ac 100644 --- a/css/area_sidetools.less +++ b/css/area_sidetools.less @@ -73,7 +73,7 @@ } p { - max-height: 200px; + max-height: 6rem; overflow-y: auto; background-color: @background_page-header; border: 1px solid @color-border; @@ -169,4 +169,4 @@ } } } -} +} \ No newline at end of file diff --git a/js/base/rem.min.js b/js/base/rem.min.js new file mode 100644 index 0000000..7a96d75 --- /dev/null +++ b/js/base/rem.min.js @@ -0,0 +1,7 @@ +/** + * Module: rem - v1.3.2 + * Description: A polyfill to parse CSS links and rewrite pixel equivalents into head for non supporting browsers + * Date Built: 2014-07-02 + * Copyright (c) 2014 | Chuck Carpenter ,Lucas Serven ; +**/ +!function(e){"use strict";var t=function(){var e=document.createElement("div");return e.style.cssText="font-size: 1rem;",/rem/.test(e.style.fontSize)},n=function(){for(var e=document.getElementsByTagName("link"),t=[],n=0;n0?(v=[],p=[],m=[],r()):i()}},a=function(e,t){for(var n,r=d(e).replace(/\/\*[\s\S]*?\*\//g,""),o=/[\w\d\s\-\/\\\[\]:,.'"*()<>+~%#^$_=|@]+\{[\w\d\s\-\/\\%#:!;,.'"*()]+\d*\.?\d+rem[\w\d\s\-\/\\%#:!;,.'"*()]*\}/g,a=r.match(o),i=/\d*\.?\d+rem/g,s=r.match(i),c=/(.*\/)/,l=c.exec(t)[0],u=/@import (?:url\()?['"]?([^'\)"]*)['"]?\)?[^;]*/gm;null!==(n=u.exec(e));)m.push(0===n[1].indexOf("/")?n[1]:l+n[1]);null!==a&&0!==a.length&&(f=f.concat(a),g=g.concat(s))},i=function(){for(var e=/[\w\d\s\-\/\\%#:,.'"*()]+\d*\.?\d+rem[\w\d\s\-\/\\%#:!,.'"*()]*[;}]/g,t=0;t ul'); + var addToggleLink = function($elem){ + $elem.wrapInner(''); + }, + toggleState = function($toggler){ + $toggler.toggleClass('closed'); + $toggler.toggleClass('opened'); + }, + focusFirstSubLink = function($elem, is2nd){ - try{ - if($menu.length > 0){ - var $toggler = $menu.find('> li.level1 > .li'), - $submenu = $menu.find('> li.level1 > ul'); - if($toggler.length > 0 && $submenu.length > 0){ - $toggler.addClass('closed'); - $toggler.wrapInner(''); - $toggler.each(function( index ) { - $(this).on( "click", function(e) { - e.preventDefault(); - var $this = $(this); - $this.toggleClass('closed'); - $this.toggleClass('opened'); - if($this.hasClass('opened')){ - var $foc = $this.closest('li.level1').find('li.level2:first-child').find('a:first-child'); - if($foc.length > 0){ - $foc.focus(); + var $foc = (is2nd) ? $elem.find('a')[1] : $elem.find('a')[0]; + + if($foc){ + $foc.focus(); + } + return $foc; + }, + focusLastSubLink = function($elem){ + + var $foc = $elem.find('a:last-child'), + height = $elem.find('p').scrollHeight; + + if($foc){ + $foc.focus(); + } + $elem.scrollTop(height); + return $foc; + }, + + mainMenu = function(){ + var $menu = $('.nav-main').find('> ul'); + + try{ + if($menu.length > 0){ + var $toggler = $menu.find('> li.level1 > .li'), + $submenu = $menu.find('> li.level1 > ul'); + if($toggler.length > 0 && $submenu.length > 0){ + + $toggler.addClass('closed'); + addToggleLink($toggler); + $toggler.each(function( index ) { + $(this).on( "click", function(e) { + e.preventDefault(); + var $this = $(this); + toggleState($this); + if($this.hasClass('opened')){ + var $foc = focusFirstSubLink($this.closest('li.level1'), true); } - } + }); }); - }); - //FIXME: store current nav state with local storage + //FIXME: store current nav state with local storage + } + + } + }catch(err){ } + }, + sideMenu = function(){ + var $menus = $('.tools').find('.toggle-menu'); - }catch(err){ - } - }; + try{ + $menus.each(function( ) { + var $menu = $(this); + if($menu.length > 0){ + var $toggler = $menu.find('h6'), + $submenu = $menu.find('nav > ul, nav > div'); + if($toggler.length > 0 && $submenu.length > 0) { + + $toggler.addClass('closed'); + addToggleLink($toggler); + $toggler.each(function (index) { + $(this).on("click", function (e) { + e.preventDefault(); + var $this = $(this); + toggleState($this); + if ($this.hasClass('opened')) { + var $elem = ($submenu.is('div')) ? focusLastSubLink($submenu): focusFirstSubLink($submenu,false); + } + }); + }); + + //FIXME: store current nav state with local storage + } + } + }); + + + }catch(err){ + alert('err'); + } + }; $(function(){ mainMenu(); + sideMenu(); }); } )( jQuery, spc ); diff --git a/script.js b/script.js index b1ceb69..166cae9 100755 --- a/script.js +++ b/script.js @@ -24,10 +24,11 @@ } )( jQuery, spc, wikiLang ); - /* DOKUWIKI:include js/plugins/do_tasks.js */ + + + /* DOKUWIKI:include js/sidebar-menu.js */ -