sidebar toggle + scrolltobottom for trace on page load

This commit is contained in:
Jana Deutschländer 2017-01-05 17:04:48 +01:00
commit 19265a3d2c
3 changed files with 84 additions and 63 deletions

View file

@ -68,7 +68,7 @@
border: 1px solid @color-border; border: 1px solid @color-border;
background-color: @background_page-header; background-color: @background_page-header;
padding: .4rem; padding: .4rem;
max-height: 200px; max-height: 6rem;
overflow-y: auto; overflow-y: auto;
.bchead, .bcsep{ .bchead, .bcsep{
display: none; display: none;

View file

@ -1,77 +1,100 @@
( function( $, spc ) { ( function( $, spc ) {
var mainMenu = function(){ var addToggleLink = function($elem){
var $menu = $('.nav-main').find('> ul'); $elem.wrapInner('<a href="#toggleMenu" class="toggler"></a>');
},
toggleState = function($toggler){
$toggler.toggleClass('closed');
$toggler.toggleClass('opened');
},
focusFirstSubLink = function($elem, is2nd){
try{ var $foc = (is2nd) ? $elem.find('a')[1] : $elem.find('a')[0];
if($menu.length > 0){
var $toggler = $menu.find('> li.level1 > .li'), if($foc){
$submenu = $menu.find('> li.level1 > ul'); $foc.focus();
if($toggler.length > 0 && $submenu.length > 0){ }
$toggler.addClass('closed'); return $foc;
$toggler.wrapInner('<a href="#toggleMenu" class="toggler"></a>'); },
$toggler.each(function( index ) { focusLastSubLink = function($elem){
$(this).on( "click", function(e) {
e.preventDefault(); var $foc = $elem.find('a:last-child'),
var $this = $(this); height = $elem.find('p').scrollHeight;
$this.toggleClass('closed');
$this.toggleClass('opened'); if($foc){
if($this.hasClass('opened')){ $foc.focus();
var $foc = $this.closest('li.level1').find('li.level2:first-child').find('a:first-child'); }
if($foc.length > 0){ $elem.scrollTop(height);
$foc.focus(); 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){
} }
},
}catch(err){ sideMenu = function(){
var $menus = $('.tools').find('.toggle-menu');
}
};
var sideMenu = function(){
var $menu = $('.tools').find('.toggle-menu');
try{ try{
if($menu.length > 0){ $menus.each(function( ) {
var $toggler = $menu.find('h6'), var $menu = $(this);
$submenu = $menu.find('nav > ul >li, nav > div'); if($menu.length > 0){
if($toggler.length > 0 && $submenu.length > 0){ var $toggler = $menu.find('h6'),
$toggler.addClass('closed'); $submenu = $menu.find('nav > ul, nav > div');
$toggler.wrapInner('<a href="#toggleMenu" class="toggler"></a>'); if($toggler.length > 0 && $submenu.length > 0) {
$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();
}
}
});
});
//FIXME: store current nav state with local storage $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');
} }
};
}catch(err){
alert('err');
}
};
$(function(){ $(function(){
mainMenu(); mainMenu();

View file

@ -24,13 +24,11 @@
} )( jQuery, spc, wikiLang ); } )( jQuery, spc, wikiLang );
/* DOKUWIKI:include js/plugins/do_tasks.js */ /* DOKUWIKI:include js/plugins/do_tasks.js */
/* DOKUWIKI:include js/sidebar-menu.js */ /* DOKUWIKI:include js/sidebar-menu.js */