//unsere eigenen Tabs! $.fn.sw_tabs = function() { //damit mir mein $(this) nicht verloren geht var thistabs = $(this); //diese Funktion prüft, ob die Pfeile für das hin und her scrollen erforderlich sind und fügt sie ggf. hinzu function scroll_tabs(thiss) { var wrapper_width = $(thiss).children('.tabs_wrapper').get(0).scrollWidth; var width = Math.ceil($(thiss).outerWidth()); if(wrapper_width > width) { $(thiss).addClass('tabs_scroll'); } else { $(thiss).removeClass('tabs_scroll'); } }; //diese Funktion führt das tatsächliche Scrollen aus und prüft, ob noch weiter nach rechts bzw. links gescrollt werden kann - je nach Ergebnis wird der Scrollpfeil dann disabled function move_tabs (scroll_amount, scroll_time) { thistabs.children('.tabs').children('.tabs_wrapper').animate({scrollLeft: scroll_amount}, scroll_time, function () { var width = thistabs.children(".tabs").outerWidth(); var wrapper_width = thistabs.children('.tabs').children('.tabs_wrapper').outerWidth(true); var wrapper_scrollwidth = thistabs.children('.tabs').children('.tabs_wrapper').get(0).scrollWidth; var scroll_left = thistabs.children('.tabs').children('.tabs_wrapper').get(0).scrollLeft; thistabs.children('.tabs').children('.pfeil').removeClass('disabled'); if(scroll_left == "0") { thistabs.children('.tabs').children('.pfeil_links').addClass('disabled'); } if (scroll_left >= (wrapper_scrollwidth - wrapper_width - 1) && scroll_left <= (wrapper_scrollwidth - wrapper_width + 1)) { thistabs.children('.tabs').children('.pfeil_rechts').addClass('disabled'); } }); }; //diese Funktionen werden zu Beginn des Aufrufens ausgeführt. //dazu gehört die Prüfung, ob Pfeile benötigt werden und das Laden des ersten Tabs setTimeout(function () {scroll_tabs(thistabs.children('.tabs'));}, 250); thistabs.children('.tabs_content').load(thistabs.children('.tabs').children('.tabs_wrapper').children('.tab:first-child').attr('goto')); thistabs.children('.tabs').children('.tabs_wrapper').children('.tab:first-child').addClass('tab_aktiv'); //wenn das Fenster seine Größe ändert, könnten die Scrollpfeile nötig werden, also prüfen wir das $(window).resize(function() { scroll_tabs(thistabs.children('.tabs')); }); //wir klicken auf einen Pfeil, um die Tabs nach links oder rechts zu scrollen thistabs.children('.tabs').children(".pfeil").click(function () { var width = thistabs.children(".tabs").outerWidth(); var wrapper_width = thistabs.children('.tabs').children('.tabs_wrapper').outerWidth(); var wrapper_scrollwidth = thistabs.children('.tabs').children('.tabs_wrapper').get(0).scrollWidth; var scroll_left = thistabs.children('.tabs').children('.tabs_wrapper').get(0).scrollLeft; if ($(this).hasClass('pfeil_links')) { var scroll_amount = scroll_left - wrapper_width; } if ($(this).hasClass('pfeil_rechts')) { var scroll_amount = scroll_left + wrapper_width; } move_tabs(scroll_amount, 500); }); //wir klicken auf einen Tab thistabs.children('.tabs').children('.tabs_wrapper').children('.tab').click(function() { //der Inhalt wird geladen thistabs.children('.tabs_content').load($(this).attr('goto')); thistabs.children('.tabs').children('.tabs_wrapper').children('.tab').removeClass('tab_aktiv'); $(this).addClass('tab_aktiv'); //falls was in der Buttonleiste stand, verschwindet es jetzt $('#fenster_blocker .fenster:last-child .buttonleiste').empty(); var tab_left = $(this).position().left; var tab_width = $(this).outerWidth(true); var wrapper_width = thistabs.children('.tabs').children('.tabs_wrapper').outerWidth(); var scroll_left = thistabs.children('.tabs').children('.tabs_wrapper').get(0).scrollLeft; var pfeil_width = thistabs.children('.tabs').children('.pfeil').outerWidth(); //wenn der Tab nicht komplett im Sichtfeld ist, wird er ins Sichtfeld geschoben if (tab_left < pfeil_width) { move_tabs(scroll_left + tab_left - pfeil_width, 250); } if ((tab_left + tab_width + pfeil_width) > (wrapper_width)) { move_tabs(scroll_left - (wrapper_width - (tab_left + tab_width)) - pfeil_width, 250); } }); }; //Tabinhalt nach-/ neuladen function load_sw_tab(klasse, pfad) { $(klasse).children('.tabs').children('.tabs_wrapper').children('.tab').each(function () { if ($(this).attr('goto') == pfad) { $(klasse).children('.tabs').children('.tabs_wrapper').children('.tab').removeClass('tab_aktiv'); $(this).addClass('tab_aktiv'); $(klasse).children('.tabs_content').load(pfad); } }); } //Headinfobereich var tId; $headinfobereich = function(text, typ) { if (typ == "success") { var farbe = "gruen"; var icon = "fa-check-circle"; } if (typ == "error") { var farbe = "rot"; var icon = "fa-times-circle"; } if (typ == "network") { var farbe = "rot"; var icon = "fa-chain-broken"; } $("#headinfobereich").removeClass('show').removeClass('rot').removeClass('gruen').hide().addClass(farbe); $('#headinfobereich .infotext').html(text); $('#headinfobereich .fa').attr('class', 'fa'); $('#headinfobereich .fa').addClass(icon); $("#headinfobereich").toggleClass('show', 500).show(); clearTimeout(tId); tId=setTimeout(function(){ $("#headinfobereich").toggleClass('show', 500).hide(500); }, 5000); } //Fenster bauen $fenster = function(klasse, titel, pfad, breite, hoehe, close_selector, close_pfad) { $('#fenster_blocker').append("