function replace_id(elem,prefix) { if(elem.attr('id')) { elem.attr('id', "fixnav_"+elem.attr('id')); } elem.children().each(function() { if($(this).attr('id')) { $(this).attr('id', prefix+$(this).attr('id')); } $(this).children().each(function() { replace_id($(this), prefix); }) }) } $(document).ready(function() { var clone = $("#header_wrapper").clone(); clone.addClass("fixnav"); replace_id(clone, 'fixnav_'); $('#wrapper').prepend(clone); if($(document).scrollTop()>=50) { clone.addClass("visible"); } $(document).scroll(function() { if($(document).scrollTop()>=50) { clone.addClass("visible"); } else { clone.removeClass("visible"); } }); $("#fixnav_topnav > li").hover(function() { //1. Unterebene var browserwidth = $( window ).width(); var ul = $(" > ul", this); //console.log(ul); //ul.css("border", "1px solid green"); //console.log(browserwidth); if(ul.length>0) { //Nur wenn es Untermenüs gibt posleft = ul.offset().left; width = ul.outerWidth(true); diff = browserwidth - (posleft + width); //console.log(diff); if(diff<0) { //Wenn es über den Tellerrand hinausschaut -> zurück in die Schranken weisen //console.log("VERSCHIEBEN nach links"); ul.css("position", "absolute"); ul.css("right", "0px"); ul.css("z-index", "100"); } else { //Wieder zurück, wenn Fenster zwischenzeitlich größer ul.css("right", "unset"); ul.css("z-index", "unset"); } } }); $("#fixnav_topnav > li > ul > li").hover(function() { //2. Unterebene var browserwidth = $( window ).width(); var ul = $(" > ul", this); //console.log(ul); //ul.css("border", "1px solid green"); if(ul.length>0) { //Nur wenn Untermenüs da sind var pos = ul.offset(); if(pos) { var left = pos.left; var width = $(" > ul", this).width(); var right = left+width; //console.log(left + "----" + right); if(right>browserwidth) { //Wenn es über den Tellerrand hinausschaut -> zurück in die Schranken weisen ul.css("position", "absolute"); ul.css("left", "-"+width+"px"); ul.css("z-index", "100"); } } } }); $("#fixnav_topnav > li > ul > li > ul > li").hover(function() { //3. Unterebene var browserwidth = $( window ).width(); var ul = $(" > ul", this); //console.log(ul); //ul.css("border", "1px solid green"); if(ul.length>0) { //Nur wenn Untermenüs da sind var pos = ul.offset(); if(pos) { var left = pos.left; var width = $(" > ul", this).width(); var right = left+width; //console.log(left + "----" + right); if(right>browserwidth) { //Wenn es über den Tellerrand hinausschaut -> zurück in die Schranken weisen ul.css("position", "absolute"); ul.css("left", "-"+width+"px"); ul.css("z-index", "100"); } } } }); $("#fixnav_topnav > li > ul > li > ul > li > ul > li").hover(function() { //4. Unterebene var browserwidth = $( window ).width(); var ul = $(" > ul", this); //console.log(ul); //ul.css("border", "1px solid green"); if(ul.length>0) { //Nur wenn Untermenüs da sind var pos = ul.offset(); if(pos) { var left = pos.left; var width = $(" > ul", this).width(); var right = left+width; //console.log(left + "----" + right); if(right>browserwidth) { //Wenn es über den Tellerrand hinausschaut -> zurück in die Schranken weisen ul.css("position", "absolute"); ul.css("left", "-"+width+"px"); ul.css("z-index", "100"); } } } }); });