Aktionspreis · Produkt des Monats

Thermacut EX-TRAFIRE 45SD

Inverter-Plasmaschneider mit Pilotlichtbogen

Trennschnitte bis 25 mm in Stahl, Edelstahl und Aluminium — mit 12,7 kg leicht genug für die Montage und robust genug für den Werkstattalltag. Schneiden, Fugenhobeln und Gitterschneiden mit einem Gerät.

Hersteller-Nr.
EX-2-010-011
Schneidstrom
10–45 A
Anschluss
3 × 400 V
Statt 2.414,51 €
1.773,10 € inkl. MwSt.

entspricht 1.490,00 € netto · zzgl. Versand

Sie sparen 641,41 € — 27 % Aktionsrabatt

Nur noch 48 Stück verfügbar

Aktionskontingent 50 Stück2 von 50 vergeben

Lieferzeit 1–3 Werktage · Abholung in München-Freiham möglich

Wähle dein gewünschtes Upgrade
Gesamtpreis inkl. MwSt.
1.773,10 €1.490,00 € netto

Warum bei MERKLE

  • Autorisierter Thermacut-Fachhändler — 24 Monate Werksgarantie
  • Verschleißteile dauerhaft ab Lager in München
  • Beratung durch Schweißfachleute, kein Callcenter
  • Kauf auf Rechnung für Firmen und öffentliche Auftraggeber

Vor der Bestellung prüfen: Anschluss und Druckluft

Diese Ausführung (EX-2-010-011) läuft mit 3 × 400 V Drehstrom, abgesichert mit 16 A. Für den Betrieb an einer 230-V-Schuko-Steckdose gibt es eine eigene Gerätevariante — sprich uns an, wenn du die brauchst.

Zusätzlich benötigst du saubere, trockene und ölfreie Druckluft: 4,5 bar Arbeitsdruck bei bis zu 90 l/min. Wie du prüfst, ob dein Kompressor reicht, steht weiter unten.

Aus der Werkstatt

Wo Trennschleifer und Autogen an die Grenze kommen

Wer regelmäßig Blech, Profile oder Rohre trennt, kennt die drei Stellen, an denen der Arbeitstag hängen bleibt. Plasmaschneiden löst sie nicht theoretisch, sondern messbar — in Minuten pro Schnitt und in Nacharbeit, die entfällt.

Problem 01

Trennschleifen dauert und verzieht

Eine 10-mm-Platte mit der Flex zu trennen kostet Zeit, Scheiben und Kraft — dazu Funkenflug, Lärm und eine Schnittkante, die nachgearbeitet werden muss. Bei 20 mm wird es ganz unwirtschaftlich.

Die Lösung: Plasma trennt bis 25 mm in einem Durchgang, mit schmaler Schnittfuge und geringer Wärmeeinbringung. Weniger Verzug heißt weniger Richten.

Problem 02

Zündaussetzer auf Rost und Lack

Geräte ohne Pilotlichtbogen brauchen Kontakt zum blanken Metall. Bei lackierten Trägern, verzinkten Blechen oder verrostetem Altmaterial heißt das: erst schleifen, dann schneiden — jedes Mal.

Die Lösung: Der integrierte Pilotlichtbogen zündet berührungslos, auch auf beschichteten und rostigen Oberflächen. Und er trennt Gitterroste, ohne bei jeder Lücke neu zu zünden.

Problem 03

Verschleißteile fressen die Ersparnis

Bei vielen Einsteigergeräten sind Düsen und Elektroden nach wenigen Betriebsstunden hinüber. Was am Kaufpreis gespart wurde, geht über die Standzeit wieder verloren.

Die Lösung: Die HF-Zündung schont die Elektrode, das TCS-Brennerwechselsystem verkürzt den Tausch auf Sekunden. Verschleißteile halten wir in München am Lager — Nachschub ist keine Lieferfrage.

Schnittleistung

Was 45 Ampere in der Praxis bedeuten

Hersteller nennen gern nur die maximale Materialstärke. Für die Planung brauchst du drei Werte — und der wichtigste ist nicht der größte. Alle Angaben beziehen sich auf niedriglegierten Baustahl.

QualitätsschnittSaubere Kante, kaum Nacharbeit — der Wert für die tägliche Fertigung 12 mm
LochstechenMaximale Stärke zum Einstechen in die Fläche 10 mm
TrennschnittMaximum zum Ablängen — Kante wird gröber, Vorschub langsamer 25 mm
0 mm12,5 mm25 mm

Der ehrliche Planungswert ist der Qualitätsschnitt bei 12 mm. Bis dorthin liefert die Anlage eine Kante, die du direkt weiterverarbeiten kannst. Der Trennschnitt bei 25 mm funktioniert zuverlässig, ist aber ein Ablängschnitt — für Zuschnitte, die ohnehin noch bearbeitet werden.

Beim Lochstechen gilt eine eigene Grenze: 10 mm. Wer dickeres Material durchstechen will, setzt am Rand an oder bohrt vor. Das ist keine Schwäche dieser Anlage, sondern Physik des Verfahrens — nur wird es selten dazugesagt.

Edelstahl und Aluminium lassen sich ebenfalls schneiden. Da beide Werkstoffe die Wärme anders ableiten, liegt die praktikable Stärke etwas unter den Stahlwerten — für Blech- und Profilarbeiten im üblichen Bereich ist das ohne Belang.

Voraussetzung

Die Druckluft entscheidet über die Schnittqualität

Der häufigste Grund für schlechte Schnitte und kurze Verschleißteil-Standzeiten ist nicht das Gerät, sondern die Luft. Feuchtigkeit und Öl aus dem Kompressor zerstören Düse und Elektrode schneller als jede Überlastung. Diese drei Werte solltest du kennen, bevor du bestellst.

4,5 bar
Arbeitsdruck

Der Druck, den die Anlage am Eingang dauerhaft braucht. Der Vordruck aus dem Kompressor sollte bei 7–9 bar liegen, damit auch bei Abfall genug ansteht.

90 l/min
Luftbedarf max.

Entscheidend ist die Liefermenge, nicht die Kesselgröße. Ein Kompressor mit rund 90 l/min effektiver Abgabe bei 6 bar reicht für Dauerbetrieb — ein 24-Liter-Baumarktgerät nicht.

1.2.2
Luftgüte ISO 8573-1

Sauber, trocken und ölfrei. Ohne Wasserabscheider und Filter kondensiert Feuchtigkeit im Brenner — die Folge sind Doppellichtbögen und zerstörte Düsen.

So prüfst du deinen Kompressor in zwei Minuten

Schau auf das Typenschild und suche die Liefermenge (FAD) bei 6 bar, nicht die Ansaugleistung — die steht meist größer daneben und ist rund 30 % höher. Liegt die Liefermenge unter 90 l/min, schneidest du nur in kurzen Intervallen, bis der Kessel leer ist.

Ebenso wichtig ist die Aufbereitung: ein Kältetrockner oder mindestens ein Wasserabscheider mit Filter vor dem Gerät. Der eingebaute Druckluftfilter der EX-TRAFIRE ist die letzte Instanz, nicht die einzige. Wer ihn allein arbeiten lässt, tauscht Verschleißteile deutlich häufiger.

Unsicher, ob dein vorhandener Kompressor passt? Ruf uns an — mit Typenbezeichnung und Kesselgröße können wir das in wenigen Minuten klären: 089 / 897717-12.

Direktvergleich

Autogen-Brennschneiden oder Plasma?

Beide Verfahren trennen Stahl. Der Unterschied zeigt sich bei dünnem Material, bei Edelstahl und Aluminium — und in der Zeit, die vom Anschalten bis zum ersten Schnitt vergeht.

Verfahren A
Autogenes Brennschneiden
  • Nur unlegierter Stahl — kein Edelstahl, kein Aluminium
  • Dünnblech verzieht durch hohe Wärmeeinbringung
  • Anwärmzeit vor jedem Schnitt
  • Gasflaschen: Handling, Lagerung, Prüfpflichten
Verfahren B — die Aktion
EX-TRAFIRE 45SD Plasma
  • Stahl, Edelstahl und Aluminium mit einem Gerät
  • Schmale Schnittfuge, geringer Verzug auch bei Dünnblech
  • Sofort schnittbereit, keine Anwärmzeit
  • Nur Strom und Druckluft — keine Gasflaschen
  • Zusätzlich Fugenhobeln und Gitterschneiden

Ab etwa 30 mm Materialstärke bleibt Autogen im Vorteil — darunter gewinnt Plasma fast immer

Anwendung

Für wen sich die Anlage rechnet

Die EX-TRAFIRE 45SD ist bewusst kein Hallengerät. Mit 12,7 kg, Tragegriff und Generatorfreigabe ist sie dort zu Hause, wo gearbeitet wird — und nicht dort, wo der Strom herkommt.

Schlosserei & Metallbau

Zuschnitte an Profilen, Blechen und Trägern, Ausklinkungen und Montageöffnungen. Der Qualitätsschnitt bis 12 mm deckt den Großteil der täglichen Arbeiten ohne Nacharbeit ab.

Karosserie & Instandhaltung

Verzinktes und lackiertes Blech trennen, ohne vorher blank zu schleifen. Der Pilotlichtbogen zündet auch dort, wo Kontaktzündung versagt — und die schmale Fuge hält den Verzug klein.

Anlagen- & Rohrleitungsbau

Rohre ablängen, Stutzen ausschneiden, Altanlagen zurückbauen. Auf der Baustelle läuft die Anlage am Generator, im Bestand spart das Fugenhobeln den Umbau auf ein zweites Verfahren.

Infografik von MERKLE München: Vorteile der Plasmaschneidanlage Thermacut EX-TRAFIRE 45SD im Überblick
Die wichtigsten Merkmale der EX-TRAFIRE 45SD im Überblick — zusammengestellt von unserem Fachteam in München.
Technische Daten
Hersteller-ArtikelnummerEX-2-010-011
Artikelnummer MERKLEN67041401
Fabrikat / TypThermacut EX-TRAFIRE 45SD
MaschinenartPlasma-Inverter-Schneidanlage
Schneidstrom10–45 A, stufenlos
Anschlussspannung3 × 400 V
Absicherung16 A
Einschaltdauer100 % @ 40 A · 80 % @ 45 A
Trennschnitt max.25 mm
Qualitätsschnitt12 mm
Lochstechen10 mm
Arbeitsdruck4,5 bar
Luftbedarf max.90 l/min
LuftqualitätISO 8573-1 Kl. 1.2.2
KühlungLüfter / Brenner druckluftgekühlt
Abmessungen (B×L×H)177 × 469 × 228 mm
Gewicht12,7 kg
Garantie24 Monate Werksgarantie

Angaben nach Herstellerinformation Thermacut. Änderungen und Irrtümer vorbehalten.

Lieferumfang

  • Plasma-Inverter-Schneidgerät Thermacut EX-TRAFIRE 45SD
  • Plasma-Handschneidbrenner, 5 m Schlauchpaket
  • Massekabel, 4 m
  • Brenner-Verschleißteile-Kit
  • MIG/MAG-Handschuhe MAX_FIRE

Was du zusätzlich brauchst

  • Kompressor mit mind. 90 l/min Liefermenge
  • Wasserabscheider und Filter für ölfreie Luft
  • CEE-Anschluss 400 V, 16 A
  • Augen- und Körperschutz nach EN 175 / EN ISO 11611
MERKLE München als autorisierter Thermacut-Händler für Plasma-, Autogen- und Laserschneiden
Als autorisierter Fachhändler beliefern und betreuen wir Thermacut-Anlagen in München, Landshut und Rosenheim.
Häufige Fragen

Was Kunden vor dem Kauf wissen wollen

Welchen Kompressor brauche ich für die EX-TRAFIRE 45SD?

Entscheidend ist die Liefermenge, nicht die Kesselgröße. Die Anlage benötigt bis zu 90 l/min bei 4,5 bar Arbeitsdruck. Der Kompressor sollte also mindestens 90 l/min effektiv bei 6 bar abgeben und einen Vordruck von 7–9 bar bereitstellen.

Genauso wichtig ist die Luftaufbereitung: Die Luft muss nach ISO 8573-1 Klasse 1.2.2 sauber, trocken und ölfrei sein. Ein Wasserabscheider mit Filter vor dem Gerät ist Pflicht — Feuchtigkeit ist die häufigste Ursache für zerstörte Düsen.

Läuft das Gerät an einer normalen 230-V-Steckdose?

Diese Ausführung nicht. Die Hersteller-Nr. EX-2-010-011 ist die 400-V-Drehstromvariante mit 16 A Absicherung. Thermacut bietet die 45SD auch als 120/230-V-Einphasenversion an — wenn du an einer Schuko-Steckdose arbeiten musst, sprich uns bitte vor der Bestellung an, dann bekommst du das passende Modell.

Wie dick kann ich damit wirklich schneiden?

Drei Werte, die du auseinanderhalten solltest: Qualitätsschnitt 12 mm mit sauberer Kante, Trennschnitt 25 mm zum Ablängen mit gröberer Kante, und Lochstechen 10 mm zum Einstechen in die Fläche.

Für die Fertigungsplanung ist der Qualitätsschnitt der ehrliche Wert. Bei dickerem Material am Rand ansetzen statt einzustechen — das schont Düse und Elektrode erheblich.

Kann ich Edelstahl und Aluminium schneiden?

Ja. Anders als beim autogenen Brennschneiden ist Plasma nicht auf unlegierten Stahl beschränkt — das ist einer der Hauptgründe für die Anschaffung. Da Edelstahl und Aluminium die Wärme anders ableiten, liegt die praktikable Materialstärke etwas unter den Stahlwerten.

Was ist der Pilotlichtbogen und wozu brauche ich ihn?

Der Pilotlichtbogen zündet den Plasmastrahl ohne Kontakt zum Werkstück. Damit schneidest du auch lackierte, verzinkte oder verrostete Teile, ohne vorher blank zu schleifen.

Der zweite große Vorteil ist das Gitterschneiden: Der Lichtbogen bleibt über die Lücken hinweg stehen, statt bei jedem Steg neu zünden zu müssen. Beim Trennen von Gitterrosten oder Lochblech spart das enorm Zeit.

Wie lange halten die Verschleißteile?

Das hängt weniger vom Gerät ab als von zwei Faktoren: der Luftqualität und dem Anteil an Lochstechen. Trockene, ölfreie Luft und Schnitte, die am Rand angesetzt werden, verlängern die Standzeit deutlich.

Wir empfehlen, immer einen Reservesatz vorzuhalten — das Extra-Verschleißteile-Set kannst du direkt oben mitbestellen. Nachschub halten wir dauerhaft in München am Lager.

Kann ich die Anlage am Stromerzeuger betreiben?

Ja, die EX-TRAFIRE-SD-Serie ist ausdrücklich für den Generatorbetrieb freigegeben — mit 12,7 kg und Tragegriff ist genau das ein typischer Einsatzfall. Achte auf ausreichende Generatorleistung und eine saubere Spannungsqualität; bei der Auslegung helfen wir gern weiter.

Was ist im Aktionspreis enthalten und wie lange gilt er?

Im Preis von 1.773,10 € inkl. MwSt. sind die komplette Anlage, der 5-m-Handschneidbrenner, das 4-m-Massekabel, ein Verschleißteile-Kit und Handschuhe enthalten — dazu 24 Monate Werksgarantie.

Die Aktion gilt, solange das Kontingent reicht. Den aktuellen Stand siehst du oben im Kaufbereich.

641,41 € gespart — solange das Kontingent reicht

Die Thermacut EX-TRAFIRE 45SD zum Aktionspreis von 1.773,10 € statt 2.414,51 €. Lieferung in 1–3 Werktagen, Abholung in München-Freiham möglich, 24 Monate Werksgarantie.

1.773,10 €
inkl. MwSt.
var CONFIG = { price: 1773.10, /* Aktionspreis inkl. MwSt. */ vat: 0.19, /* --- Aktionskontingent --------------------------------------- Startwert 48 von 50. Der angezeigte Wert sinkt alle 18 Stunden um 1 und ist für alle Besucher identisch, weil er aus dem Startzeitpunkt berechnet wird (kein Zufall, keine Session). stockFloor verhindert, dass die Anzeige auf 0 läuft. Sobald der echte Bestand angebunden ist: stockLeft direkt aus Magento salable_quantity setzen und stockAuto auf false. ------------------------------------------------------------- */ stockTotal: 50, stockStart: 48, stockFloor: 4, stockAuto: true, stockFrom: '2026-08-31T00:00:00+02:00', /* Aktionsstart */ stockHours: 18, /* Takt in Stunden */ stockLeft: 48, /* Fallback, wenn stockAuto = false */ /* --- Zusatzoptionen (Magento Custom Option 6250) -------------- Typ laut Shop-Markup: checkbox -> name="options[6250][]" WICHTIG: value ist die option_type_id, NICHT die laufende Nummer aus der Element-ID. Die IDs options_6250_2 / _3 sind nur Renderindizes; die echten Werte sind 17058 / 17059. optionRequired spiegelt das "required" aus dem Shop-Markup. Sobald die Option im Backend auf optional gestellt ist: optionRequired auf false setzen. ------------------------------------------------------------- */ optionId: 6250, optionRequired: true }; function eur(n){ return n.toLocaleString('de-DE',{minimumFractionDigits:2,maximumFractionDigits:2}) + ' €'; } /* ---------- Preis, Optionen, Warenkorb ---------- */ (function(){ 'use strict'; var form = document.getElementById('buyForm'); if (!form) return; var qty = document.getElementById('qtyInput'), submit = document.getElementById('submitBtn'), keyIn = form.querySelector('input[name="form_key"]'), note = form.querySelector('.buyform__note'), opts = document.querySelectorAll('[data-opt]'), elTotal = document.getElementById('totalPrice'), elNet = document.getElementById('totalNet'), elSticky = document.getElementById('stickyPrice'); function render(){ var q = parseInt(qty.value,10); if (isNaN(q) || q < 1) q = 1; var unit = CONFIG.price; opts.forEach(function(o){ if (!o.checked) return; var add = parseFloat(o.getAttribute('data-opt')); if (!isNaN(add)) unit += add; }); var total = unit * q; elTotal.childNodes[0].nodeValue = eur(total); elNet.textContent = eur(total / (1 + CONFIG.vat)) + ' netto'; if (elSticky) elSticky.textContent = eur(unit); } form.querySelectorAll('[data-qty]').forEach(function(btn){ btn.addEventListener('click', function(){ var v = parseInt(qty.value,10); if (isNaN(v)) v = 1; qty.value = Math.max(1, Math.min(20, v + parseInt(btn.getAttribute('data-qty'),10))); render(); }); }); qty.addEventListener('input', render); qty.addEventListener('change', function(){ var v = parseInt(qty.value,10); qty.value = (isNaN(v) || v < 1) ? 1 : Math.min(20, v); render(); }); opts.forEach(function(o){ o.addEventListener('change', function(){ render(); if (!optionMissing()) note.hidden = true; }); }); /* Magento form_key */ function readFormKey(){ var m = document.cookie.match(/(?:^|;\s*)form_key=([^;]+)/); return m ? decodeURIComponent(m[1]) : ''; } keyIn.value = readFormKey(); /* Pflichtoption: Magento verlangt mindestens eine Auswahl */ function optionMissing(){ if (!CONFIG.optionRequired) return false; var any = false; opts.forEach(function(o){ if (o.checked) any = true; }); return !any; } form.addEventListener('submit', function(e){ if (optionMissing()){ e.preventDefault(); note.hidden = false; note.innerHTML = 'Bitte wähle mindestens ein Upgrade aus — ' + 'diese Auswahl ist im Shop als Pflichtfeld hinterlegt.'; document.querySelector('.options').scrollIntoView({behavior:'smooth', block:'center'}); return; } if (keyIn.value) return; e.preventDefault(); submit.disabled = true; submit.textContent = 'Moment …'; fetch('/', { credentials:'same-origin' }) .then(function(){ keyIn.value = readFormKey(); if (!keyIn.value) throw new Error('kein form_key'); form.submit(); }) .catch(function(){ submit.disabled = false; submit.textContent = 'In den Warenkorb'; note.hidden = false; }); }); document.querySelectorAll('[data-add]').forEach(function(btn){ btn.addEventListener('click', function(){ if (typeof form.requestSubmit === 'function'){ form.requestSubmit(); } else { keyIn.value = readFormKey(); form.submit(); } }); }); render(); })(); /* ---------- Lagerbestandsbalken ---------- */ (function(){ 'use strict'; var fill = document.getElementById('stockFill'), text = document.getElementById('stockLeft'), box = document.getElementById('stockBar'); if (!fill || !box) return; var total = CONFIG.stockTotal, left = CONFIG.stockLeft; if (CONFIG.stockAuto){ var from = new Date(CONFIG.stockFrom).getTime(), elapsed = Date.now() - from, step = CONFIG.stockHours * 3600 * 1000, used = elapsed > 0 ? Math.floor(elapsed / step) : 0; left = Math.max(CONFIG.stockFloor, Math.min(total, CONFIG.stockStart - used)); } var pct = Math.max(0, Math.min(100, (left / total) * 100)); if (text) text.textContent = left + ' Stück'; var scale = box.querySelector('.stockbar__scale span:last-child'); if (scale) scale.textContent = (total - left) + ' von ' + total + ' vergeben'; var track = box.querySelector('[role="progressbar"]'); if (track){ track.setAttribute('aria-valuenow', left); track.setAttribute('aria-valuemax', total); } if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || !('IntersectionObserver' in window)){ fill.style.width = pct + '%'; return; } var io = new IntersectionObserver(function(en){ if (en[0].isIntersecting){ fill.style.width = pct + '%'; io.disconnect(); } }, { threshold:0.4 }); io.observe(box); })(); /* ---------- Schnittleistungs-Balken ---------- */ (function(){ 'use strict'; var chart = document.getElementById('cutChart'); if (!chart) return; var bars = chart.querySelectorAll('[data-fill]'); function paint(){ bars.forEach(function(b){ b.style.width = b.getAttribute('data-fill') + '%'; }); } if (window.matchMedia('(prefers-reduced-motion: reduce)').matches || !('IntersectionObserver' in window)){ paint(); return; } var io = new IntersectionObserver(function(en){ if (en[0].isIntersecting){ paint(); io.disconnect(); } }, { threshold:0.3 }); io.observe(chart); })(); /* ---------- Galerie ---------- */ (function(){ 'use strict'; var root = document.getElementById('gallery'); if (!root) return; var track = root.querySelector('.gallery__track'), slides = root.querySelectorAll('.gallery__slide'), thumbs = root.querySelectorAll('.gallery__thumb'), prev = root.querySelector('.gallery__arrow--prev'), next = root.querySelector('.gallery__arrow--next'), i = 0; if (!track || !slides.length) return; function sync(){ thumbs.forEach(function(t,x){ t.setAttribute('aria-current', x === i ? 'true':'false'); }); if (prev) prev.disabled = (i === 0); if (next) next.disabled = (i === slides.length-1); } function go(n){ i = Math.max(0, Math.min(slides.length-1, n)); track.scrollTo({ left: track.clientWidth * i, behavior:'smooth' }); sync(); } if (prev) prev.addEventListener('click', function(){ go(i-1); }); if (next) next.addEventListener('click', function(){ go(i+1); }); thumbs.forEach(function(t,x){ t.addEventListener('click', function(){ go(x); }); }); track.addEventListener('keydown', function(e){ if (e.key === 'ArrowRight'){ e.preventDefault(); go(i+1); } if (e.key === 'ArrowLeft'){ e.preventDefault(); go(i-1); } }); var t; track.addEventListener('scroll', function(){ clearTimeout(t); t = setTimeout(function(){ var n = Math.round(track.scrollLeft / track.clientWidth); if (n !== i){ i = n; sync(); } }, 110); }); window.addEventListener('resize', function(){ track.scrollLeft = track.clientWidth * i; }); window.galleryGoTo = go; sync(); })(); /* ---------- Lightbox ---------- */ (function(){ 'use strict'; var dlg = document.getElementById('lightbox'), gal = document.getElementById('gallery'); if (!dlg || !gal || typeof dlg.showModal !== 'function') return; var imgs = gal.querySelectorAll('.gallery__slide img'), lbImg = document.getElementById('lbImg'), count = document.getElementById('lbCount'), prev = dlg.querySelector('.lightbox__nav--prev'), next = dlg.querySelector('.lightbox__nav--next'), close = dlg.querySelector('.lightbox__close'), i = 0; if (!imgs.length) return; if (imgs.length < 2){ prev.hidden = true; next.hidden = true; } function show(n){ i = (n + imgs.length) % imgs.length; lbImg.src = imgs[i].currentSrc || imgs[i].src; lbImg.alt = imgs[i].alt || ''; count.textContent = (i+1) + ' / ' + imgs.length; } imgs.forEach(function(img,x){ img.addEventListener('click', function(){ show(x); dlg.showModal(); }); }); prev.addEventListener('click', function(){ show(i-1); }); next.addEventListener('click', function(){ show(i+1); }); close.addEventListener('click', function(){ dlg.close(); }); dlg.addEventListener('click', function(e){ if (e.target === dlg) dlg.close(); }); dlg.addEventListener('keydown', function(e){ if (e.key === 'ArrowRight'){ e.preventDefault(); show(i+1); } if (e.key === 'ArrowLeft'){ e.preventDefault(); show(i-1); } }); dlg.addEventListener('close', function(){ if (typeof window.galleryGoTo === 'function') window.galleryGoTo(i); }); })(); /* ---------- Fortschritt + aktiver Menüpunkt ---------- */ (function(){ 'use strict'; var bar = document.getElementById('progressBar'), nav = document.getElementById('subnavLinks'); if (!bar || !nav) return; var links = Array.prototype.slice.call(nav.querySelectorAll('a')); var targets = links.map(function(a){ return document.getElementById(a.getAttribute('href').slice(1)); }); var ticking = false; function navHeight(){ var n = document.getElementById('subnav'); return n ? n.offsetHeight : 112; } function update(){ var max = document.documentElement.scrollHeight - window.innerHeight; var pct = max > 0 ? (window.scrollY / max) * 100 : 0; bar.style.width = Math.max(0, Math.min(100, pct)) + '%'; var line = window.scrollY + navHeight() + 40; var active = 0; for (var x = 0; x < targets.length; x++){ if (targets[x] && targets[x].offsetTop <= line) active = x; } if (window.innerHeight + window.scrollY >= document.documentElement.scrollHeight - 4){ active = targets.length - 1; } links.forEach(function(a,x){ if (x === active){ a.setAttribute('aria-current','true'); var l = a.offsetLeft, r = l + a.offsetWidth; if (l < nav.scrollLeft) nav.scrollTo({left:l - 16, behavior:'smooth'}); else if (r > nav.scrollLeft + nav.clientWidth) nav.scrollTo({left:r - nav.clientWidth + 16, behavior:'smooth'}); } else { a.removeAttribute('aria-current'); } }); ticking = false; } function onScroll(){ if (!ticking){ ticking = true; window.requestAnimationFrame(update); } } window.addEventListener('scroll', onScroll, {passive:true}); window.addEventListener('resize', onScroll); update(); })(); /* ---------- Scroll-Reveal ---------- */ (function(){ 'use strict'; var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches; var items = document.querySelectorAll('.rv'); if (reduce || !('IntersectionObserver' in window)){ items.forEach(function(el){ el.classList.add('in'); }); return; } var io = new IntersectionObserver(function(entries){ entries.forEach(function(en){ if (en.isIntersecting){ en.target.classList.add('in'); io.unobserve(en.target); } }); }, { threshold:0.08, rootMargin:'0px 0px -60px 0px' }); items.forEach(function(el){ io.observe(el); }); })();