Wo befindet sich der SEO-Titel in WordPress? Eine einfache Anleitung

Wo befindet sich der SEO-Titel in WordPress? Eine einfache Anleitung

Einführung

Viele WordPress Anfänger stellen sich immer wieder dieselbe Frage: Wo finde ich den SEO-Titel in WordPress? Die Antwort ist einfach, kann aber anfangs verwirrend sein, da WordPress den SEO-Titel nicht immer an einer offensichtlichen Stelle anzeigt.

Der SEO-Titel wird üblicherweise über ein SEO-Plugin wie Yoast SEO, All in One SEO oder Rank Math verwaltet. Oftmals finden Sie ihn im Bearbeitungsmodus eines Beitrags, einer Seite, eines Produkts, einer Kategorie oder der Startseite. Einige Plugins platzieren das Feld für den SEO-Titel unter dem Hauptinhaltseditor, andere in einer Seitenleiste oder in einem Snippet-Vorschaufeld. Die Originalanleitung erklärt, dass WordPress automatisch einen Titel generieren kann, die Anpassung jedoch mehr Kontrolle darüber gibt, wie Ihre Seite in den Suchergebnissen erscheint.

Was ist ein SEO-Titel in WordPress?

Ein SEO-Titel ist der Titel, den Suchmaschinen in den Suchergebnissen für Ihre Seite anzeigen. Er wird auch Meta-Titel oder Title-Tag genannt. Vereinfacht gesagt, informiert er Suchmaschinen und Nutzer darüber, worum es auf Ihrer Seite geht.

Ein Beispiel für den Titel Ihres WordPress-Beitrags könnte lauten:

Wie man einen Blog startet

Ihr SEO-Titel könnte aber lauten:

So startest du einen Blog in WordPress: Leitfaden für Anfänger

Die zweite Version ist spezifischer. Sie nennt die Plattform, gibt Nutzern einen klareren Grund zum Klicken und zielt auf einen präziseren Suchbegriff ab.

Deshalb ist der SEO-Titel so wichtig. Er ist nicht nur eine technische Einstellung, sondern auch ein kleiner Marketingtext. Ein guter SEO-Titel hilft Nutzern, Ihre Inhalte schneller zu verstehen und kann die Klickrate Ihrer Seite in den Google-Suchergebnissen verbessern.

Wo befindet sich der SEO-Titel in WordPress?

Wo befindet sich der SEO-Titel in WordPress? Eine einfache Anleitung – Wo befindet sich der SEO-Titel in WordPress?

Der Standort hängt von Ihrer Konfiguration ab.

Bei einer Standardinstallation von WordPress wird der Seitentitel automatisch anhand des Beitrags- oder Seitentitels erstellt. Um den SEO-Titel jedoch optimal zu bearbeiten, ist in der Regel ein SEO-Plugin erforderlich.

Die meisten Nutzer finden den SEO-Titel an einer dieser Stellen:

Im Beitrags- oder Seiteneditor
In einem SEO-Plugin-Feld unterhalb des Inhaltseditors
Innerhalb der Seitenleiste des SEO-Plugins
In den SEO-Einstellungen der Startseite
In den globalen Titelvorlageneinstellungen

Wenn also jemand fragt, wo der SEO-Titel in WordPress zu finden ist, lautet die praktischste Antwort: Öffnen Sie die Seite oder den Beitrag, den Sie optimieren möchten, und suchen Sie dann nach den Titel- oder Snippet-Einstellungen Ihres SEO-Plugins.

Den SEO-Titel mit Yoast SEO finden

Yoast SEO ist eines der gängigsten SEO-Plugins für WordPress. Wenn Sie Yoast verwenden, öffnen Sie die Seite oder den Beitrag, den Sie bearbeiten möchten. Scrollen Sie unterhalb des Haupteditors nach unten und suchen Sie nach dem Abschnitt „Yoast SEO“. Je nach Layout Ihres WordPress-Editors finden Sie die Yoast-Optionen möglicherweise auch in der Seitenleiste.

Yoast ermöglicht es Nutzern, SEO-Titel über Snippet-Einstellungen und Titelvorlagen zu verwalten. Yoast unterstützt außerdem Snippet-Variablen, die automatisch Informationen wie Seitentitel, Website-Name, Kategorie oder Trennzeichen in den SEO-Titel einfügen können.

Ein typisches Yoast-Titelformat könnte folgendermaßen aussehen:

Seitentitel | Website-Name

Dieses Format ist nützlich, da es jeder Seite einen aussagekräftigen Titel gibt und gleichzeitig Ihren Marken- oder Website-Namen enthält. Sie können jedoch weiterhin einzelne Seiten bearbeiten, wenn Sie einen individuelleren Titel wünschen.

Den SEO-Titel mit Rank Math finden

Rank Math funktioniert ähnlich. Öffnen Sie den Editor Ihres WordPress-Beitrags oder Ihrer Seite und suchen Sie nach dem Rank Math SEO-Bereich. Dort können Sie den Snippet bearbeiten und den SEO-Titel ändern.

Rank Math unterstützt außerdem Variablen für SEO-Titel und -Beschreibungen, was Benutzern hilft, dynamische Titelvorlagen zu erstellen, anstatt jede Seite einzeln manuell bearbeiten zu müssen.

Dies ist besonders für größere Websites nützlich. Wenn Sie beispielsweise einen Blog mit vielen Artikeln betreiben, möchten Sie wahrscheinlich, dass alle Beitragstitel einem einheitlichen Format folgen. Rank Math kann Ihnen dabei helfen, diese Struktur automatisch anzuwenden und gleichzeitig bei Bedarf manuelle Änderungen zu ermöglichen.

Den SEO-Titel mit All in One SEO finden

Wo finde ich den SEO-Titel in WordPress? Eine einfache Anleitung – Den SEO-Titel mit All in One SEO finden

All in One SEO bietet auch Felder zum Bearbeiten von SEO-Titeln direkt in WordPress. Nach der Installation des Plugins öffnen Sie die Seite oder den Beitrag, den Sie optimieren möchten, und suchen den Einstellungsbereich von AIOSEO. Dort können Sie in der Regel den Seitentitel, die Meta-Beschreibung und die Suchvorschau bearbeiten.

Im Originalartikel wird darauf hingewiesen, dass All in One SEO, Yoast SEO und Rank Math allesamt Möglichkeiten bieten, den SEO-Titel direkt im WordPress-Editor zu finden und zu bearbeiten.

Das genaue Layout kann je nach Plugin-Version, WordPress-Editor und Theme variieren, aber die Grundidee ist dieselbe: Das SEO-Titelfeld befindet sich in den SEO-Einstellungen des Plugins für diese Seite.

Ist der WordPress-Seitentitel identisch mit dem SEO-Titel?

Nicht immer.

Der WordPress-Seitentitel ist der Titel, den Besucher normalerweise auf der Seite sehen. Der SEO-Titel ist der Titel, den Suchmaschinen in den Suchergebnissen anzeigen.

Manchmal sind sie identisch. Zum Beispiel:

Seitenüberschrift: Über uns
SEO-Titel: Über uns

Für die Suchmaschinenoptimierung (SEO) ist dieser Titel jedoch zu allgemein. Ein besserer SEO-Titel wäre beispielsweise:

Über unser WordPress-Designstudio | Markenname

Diese Version bietet Nutzern und Suchmaschinen mehr Kontext.

Der Seitentitel richtet sich hauptsächlich an Besucher Ihrer Website. Der SEO-Titel hingegen ist vor allem für Nutzer relevant, die entscheiden, ob sie auf Ihr Google-Suchergebnis klicken. Daher sollte Ihr SEO-Titel klarer, keywordoptimiert und ansprechender sein.

Wo befindet sich der SEO-Titel der Homepage in WordPress?

Die Startseite kann sich geringfügig von normalen Seiten unterscheiden.

Wenn Ihre Startseite eine statische Seite ist, können Sie deren SEO-Titel in der Regel bearbeiten, indem Sie die Seite in WordPress öffnen und die Einstellungen Ihres SEO-Plugins verwenden. Yoast erklärt, dass eine statische Startseite direkt auf der Startseite bearbeitet werden kann, während für eine Startseite mit den neuesten Beiträgen die Einstellungen des Plugins verwendet werden können.

Um Ihre Homepage-Einstellungen zu überprüfen, gehen Sie zu:

WordPress-Dashboard → Einstellungen → Lesen

Dort können Sie sehen, ob auf Ihrer Startseite Ihre neuesten Beiträge oder eine bestimmte statische Seite angezeigt wird.

Falls es sich um eine statische Seite handelt, gehen Sie zu:

Seiten → Ihre Startseite → Bearbeiten → SEO-Plugin-Einstellungen

Falls die neuesten Beiträge verwendet werden, rufen Sie die Homepage Ihres SEO-Plugins oder die Einstellungen für den Inhaltstyp auf.

So bearbeiten Sie den SEO-Titel in WordPress

Hier ist der allgemeine Ablauf:

Melden Sie sich in Ihrem WordPress-Dashboard an.

Gehe zu Beiträgen oder Seiten.

Öffne die Seite oder den Beitrag, den du optimieren möchtest.

Finden Sie Ihr SEO-Plugin-Panel.

Suchen Sie nach einem Feld mit der Bezeichnung SEO-Titel, Titel oder Snippet-Titel.

Verfassen Sie Ihren individuellen SEO-Titel.

Seite speichern oder aktualisieren.

Nach dem Speichern aktualisiert Ihr SEO-Plugin normalerweise den Titel-Tag der Seite. Suchmaschinen zeigen die Änderung möglicherweise nicht sofort an. Google muss die Seite zunächst neu crawlen und kann den angezeigten Titel gegebenenfalls noch ändern, wenn eine andere Version für die Nutzer hilfreicher erscheint.

Wie lang sollte ein SEO-Titel sein?

Ein guter SEO-Titel sollte klar und nicht zu lang sein. Viele SEO-Tools empfehlen, Titel auf etwa 50 bis 60 Zeichen zu beschränken, da zu lange Titel in den Suchergebnissen abgeschnitten werden können.

Die Zeichenanzahl ist jedoch nicht das Einzige, was zählt. Ihr Titel sollte auch lesbar, relevant und nützlich sein.

Ein schwacher Titel könnte lauten:

SEO-Titel WordPress

Ein aussagekräftigerer Titel wäre vielleicht:

Wo befindet sich der SEO-Titel in WordPress? Einsteigerleitfaden

Die verbesserte Version enthält das Ziel-Keyword, erläutert den Zweck des Artikels und klingt natürlich.

Wie man einen besseren WordPress-SEO-Titel schreibt

Ein aussagekräftiger SEO-Titel enthält üblicherweise vier Elemente:

Ein klares Thema
Ein Zielkeyword
Ein Nutzernutzen
Eine natürliche Struktur

Für diesen Artikel lautet das Keyword „wo ist der SEO-Titel in wordpress?“. Ein Titel, der auf diesem Keyword basiert, sollte natürlich und nicht gekünstelt klingen.

Gute Beispiele hierfür sind:

Wo befindet sich der SEO-Titel in WordPress? Eine einfache Anleitung

Wo befindet sich der SEO-Titel in WordPress und wie kann man ihn bearbeiten?

So finden Sie den SEO-Titel in WordPress

Jede Version zielt auf dieselbe Suchintention ab. Der Nutzer möchte wissen, wo sich der Titel befindet und wie er ihn ändern kann.

Sollte man das exakte Keyword im SEO-Titel verwenden?

Die Verwendung des exakten Keywords kann hilfreich sein, es sollte aber dennoch natürlich klingen. Suchmaschinen verstehen die Bedeutung mittlerweile besser, daher ist eine umständliche Wiederholung des Keywords nicht mehr nötig.

Zum Beispiel eignet sich dieser Titel gut:

Wo befindet sich der SEO-Titel in WordPress? Eine einfache Anleitung

Dieser Titel ist klar, gut lesbar und auf Schlüsselwörter ausgerichtet.

Dieser Titel ist nicht gut:

Wo finde ich den SEO-Titel in WordPress? SEO-Titel-Anleitung für WordPress

Es wiederholt Wörter, wirkt unnatürlich und kann die Klickzahlen verringern.

Ihr Titel sollte in erster Linie für echte Nutzer geschrieben sein. Wenn Nutzer ihn schnell verstehen, verstehen ihn in der Regel auch Suchmaschinen.

Wie lautet der Seitentitel in WordPress?

Der Website-Titel unterscheidet sich vom SEO-Titel einer einzelnen Seite.

Der Titel Ihrer Website ist der Name Ihrer gesamten Website. Sie können ihn normalerweise hier bearbeiten:

WordPress-Dashboard → Einstellungen → Allgemein

Dort finden Sie Felder für Website-Titel und Slogan. Im Originalartikel wird außerdem erläutert, dass Website-Titel, Trennzeichen und Slogan Einfluss darauf haben, wie Standardtitel generiert werden.

Wenn Ihr Seitentitel beispielsweise “Bright Home Blog” lautet, erstellt WordPress oder Ihr SEO-Plugin möglicherweise automatisch Titel wie:

Küchengestaltungsideen | Blog für ein helles Zuhause

Das Trennzeichen ist das Symbol zwischen Seitentitel und Website-Titel. Gängige Trennzeichen sind:

|

:
•

Ihr SEO-Plugin ermöglicht es Ihnen normalerweise, das Trennzeichen auszuwählen.

Was sind SEO-Titelvariablen?

Wo befindet sich der SEO-Titel in WordPress? Eine einfache Anleitung – Was sind SEO-Titelvariablen?

SEO-Titelvariablen sind Platzhalter, die automatisch Informationen in Ihren Titel einfügen.

Zum Beispiel:

%title% | %sitelname%

Dies kann Folgendes auslösen:

Über uns | Blog für ein helles Zuhause

Sowohl Yoast als auch Rank Math unterstützen Variablen zur automatischen Generierung von Titeln und Beschreibungen. Yoast beschreibt Snippet-Variablen als Möglichkeit, Titel- und Meta-Beschreibungsvorlagen für verschiedene Inhaltstypen zu automatisieren.

Variablen sind hilfreich, wenn Sie viele Seiten haben. Anstatt jeden Titel manuell zu bearbeiten, können Sie ein Standardmuster erstellen. Anschließend können Sie wichtige Seiten wie Ihre Startseite, Serviceseiten, Landingpages und besonders wertvolle Blogbeiträge manuell anpassen.

Wann sollte man einen SEO-Titel manuell bearbeiten?

Sie sollten einen SEO-Titel manuell bearbeiten, wenn der Standardtitel zu kurz, zu vage, zu lang ist oder das Hauptkeyword fehlt.

Ein Standardtitel könnte beispielsweise lauten:

Dienstleistungen

Ein besserer SEO-Titel könnte lauten:

WordPress-Webseitengestaltungsdienste für kleine Unternehmen

Die verbesserte Version ist präziser. Sie erklärt den Nutzern, was die Seite bietet und für wen sie gedacht ist.

Sie sollten SEO-Titel auch für Folgendes anpassen:

Startseite
Hauptseiten des Service
Produktseiten
Kategorieseiten
Wichtige Blogbeiträge
Landingpages
Seiten, die auf umkämpfte Keywords abzielen

Standardvorlagen sind zwar nützlich, aber wichtige Seiten verdienen einen individuellen Titel.

Häufige SEO-Titelfehler in WordPress

Ein häufiger Fehler ist die Verwendung desselben SEO-Titels auf mehreren Seiten. Jede wichtige Seite sollte einen eindeutigen Titel haben. Doppelte Titel erschweren es Suchmaschinen, zu verstehen, welche Seite für eine bestimmte Suchanfrage ranken soll.

Ein weiterer Fehler sind zu vage Titel. Ein Titel wie „Willkommen“ erklärt den Seiteninhalt nicht. Ein Titel wie „Handgefertigter Schmuckladen in New York“ bietet deutlich mehr Kontext.

Ein dritter Fehler ist die Verwendung zu vieler Keywords im Titel. Keyword-Stuffing kann dazu führen, dass Ihr Suchergebnis wie Spam wirkt. Ein Titel sollte das Hauptkeyword natürlich enthalten und nicht mehrfach wiederholen.

Ein vierter Fehler ist, die Suchvorschau nicht zu überprüfen. Die meisten SEO-Plugins zeigen an, wie Ihr Titel in den Suchergebnissen erscheinen könnte. Nutzen Sie diese Vorschau, um sicherzustellen, dass der Titel nicht zu lang oder unklar ist.

Warum Google möglicherweise einen anderen Titel anzeigt

Selbst wenn Sie Ihren SEO-Titel in WordPress bearbeiten, kann es vorkommen, dass Google in den Suchergebnissen einen anderen Titel anzeigt. Das bedeutet nicht zwangsläufig, dass Ihr Plugin defekt ist.

Google kann einen Titel überarbeiten, wenn es der Ansicht ist, dass eine andere Version besser zur Suchanfrage oder zum Seiteninhalt passt. Dabei kann es Ihre Überschrift, Ihren Ankertext, den Seiteninhalt oder andere Signale verwenden.

Um unerwünschte Änderungen zu vermeiden, achten Sie darauf, dass Ihr SEO-Titel zum Seiteninhalt passt. Überschrift (H1), Einleitung und Seitenthema sollten den Titel unterstützen. Verspricht der Titel etwas anderes als der Seiteninhalt, kann dies von Suchmaschinen angepasst werden.

So überprüfen Sie Ihren SEO-Titel

Sie können Ihren SEO-Titel auf verschiedene Arten überprüfen.

Schauen Sie sich zunächst die Vorschau Ihres SEO-Plugins an. Dies ist die einfachste Methode für Anfänger.

Öffnen Sie als Nächstes die Seite in Ihrem Browser und überprüfen Sie den Browsertab. Der im Tab angezeigte Text entspricht oft dem Titel-Tag.

Drittens, sehen Sie sich den Seitenquelltext an und suchen Sie nach dem/der/das </code> Tag innerhalb des <code><head></code> Abschnitt. Im Originalartikel wird darauf hingewiesen, dass der Titel im HTML-Head-Bereich zwischen den title-Tags zu finden ist.</p> <p class="wp-block-paragraph">Viertens können Sie Ihre Seite nach der Indexierung bei Google suchen. Beachten Sie jedoch, dass Google möglicherweise eine überarbeitete Version anzeigt.</p> <h2 class="wp-block-heading">Formel für bewährte SEO-Titel</h2> <p class="wp-block-paragraph">Eine einfache SEO-Titelformel lautet:</p> <p class="wp-block-paragraph">Hauptkeyword + Nutzen oder Kontext + Markenname</p> <p class="wp-block-paragraph">Zum Beispiel:</p> <p class="wp-block-paragraph">Wo befindet sich der SEO-Titel in WordPress? Eine einfache Anleitung</p> <p class="wp-block-paragraph">Oder für eine Serviceseite:</p> <p class="wp-block-paragraph">Shopify-Webseitengestaltung für Schmuckmarken</p> <p class="wp-block-paragraph">Oder für eine Produktseite:</p> <p class="wp-block-paragraph">Minimalistische Goldkette für jeden Tag</p> <p class="wp-block-paragraph">Die Formel sollte nicht mechanisch wirken. Verwenden Sie sie als Richtlinie und schreiben Sie den Titel dann so um, dass er menschlich klingt.</p> <h2 class="wp-block-heading">Abschließende Zusammenfassung</h2> <p class="wp-block-paragraph">Der SEO-Titel in <strong><a href="https://www.WordPres.com" target="_blank" rel="noopener">WordPress</a></strong> Die SEO-Titeleinstellungen finden Sie üblicherweise in den Einstellungen Ihres SEO-Plugins, nicht im normalen Inhaltsbereich der Seite. Wenn Sie Yoast SEO, Rank Math oder All in One SEO verwenden, öffnen Sie den Beitrags- oder Seiteneditor und suchen Sie nach dem SEO-Titel, dem Snippet oder dem Metadatenbereich des Plugins. Prüfen Sie für die Startseite, ob Ihre Website eine statische Seite oder die neuesten Beiträge anzeigt, und bearbeiten Sie anschließend den SEO-Titel im Seiteneditor oder in den Startseiteneinstellungen Ihres Plugins.</p> <p class="wp-block-paragraph">Ein guter SEO-Titel hilft Suchmaschinen, Ihre Seite zu verstehen, und Nutzern, zu entscheiden, ob sie darauf klicken. Er sollte klar, präzise, keywordoptimiert und natürlich klingen. Nutzen Sie Titelvorlagen und -variablen, um effizienter zu sein, passen Sie aber Ihre wichtigsten Seiten manuell an. Wenn Sie wissen, wo sich der SEO-Titel in WordPress befindet und wie Sie ihn bearbeiten, haben Sie mehr Kontrolle darüber, wie Ihre Website in den Suchergebnissen erscheint.</p> <h2 class="wp-block-heading">Häufig gestellte Fragen</h2> <h3 class="wp-block-heading">1. Wo befindet sich der SEO-Titel in WordPress?</h3> <p class="wp-block-paragraph">Der SEO-Titel befindet sich üblicherweise in den Einstellungen Ihres SEO-Plugins. Öffnen Sie einen Beitrag oder eine Seite und suchen Sie dann nach dem SEO-Bereich von Yoast SEO, Rank Math, All in One SEO oder einem anderen SEO-Plugin.</p> <h3 class="wp-block-heading">2. Stimmt der SEO-Titel mit dem WordPress-Beitragstitel überein?</h3> <p class="wp-block-paragraph">Nicht immer. Der WordPress-Beitragstitel wird auf der Seite angezeigt, der SEO-Titel hingegen hauptsächlich für die Suchergebnisse. Sie können beide Titel beibehalten, aber die Anpassung des SEO-Titels verbessert oft die Sichtbarkeit in den Suchergebnissen.</p> <h3 class="wp-block-heading">3. Wie bearbeite ich den SEO-Titel in WordPress?</h3> <p class="wp-block-paragraph">Gehen Sie zu Ihrem WordPress-Dashboard, öffnen Sie den Beitrag oder die Seite, suchen Sie den Abschnitt „SEO-Plugin“, bearbeiten Sie das Feld „SEO-Titel“ und aktualisieren oder veröffentlichen Sie anschließend die Seite.</p> <h3 class="wp-block-heading">4. Benötige ich ein SEO-Plugin, um den SEO-Titel zu ändern?</h3> <p class="wp-block-paragraph">In der Regel ja. WordPress kann zwar automatisch einen einfachen Titel generieren, aber ein SEO-Plugin gibt Ihnen die direkte Kontrolle über den SEO-Titel, die Meta-Beschreibung und die Suchvorschau.</p> <h3 class="wp-block-heading">5. Wie lang sollte ein WordPress-SEO-Titel sein?</h3> <p class="wp-block-paragraph">Ein guter SEO-Titel umfasst in der Regel 50–60 Zeichen. Er sollte klar und lesbar sein und das Hauptkeyword auf natürliche Weise enthalten.</p> <h3 class="wp-block-heading">6. Warum zeigt Google einen anderen SEO-Titel an?</h3> <p class="wp-block-paragraph">Google kann Ihren SEO-Titel überschreiben, wenn eine andere Version besser zur Suchanfrage oder zum Seiteninhalt passt. Um dies zu vermeiden, stellen Sie sicher, dass Ihr SEO-Titel klar mit dem Seitenthema und der Hauptüberschrift übereinstimmt.</p> </div> </div> <div class="elementor-element elementor-element-2a3b559 e-con-full e-flex e-con e-child" data-id="2a3b559" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic","sticky":"top","sticky_on":["desktop","tablet"],"sticky_offset":80,"sticky_parent":"yes","sticky_effects_offset":0,"sticky_anchor_link_offset":0}"> <div class="elementor-element elementor-element-10b5122 e-con-full e-flex e-con e-child" data-id="10b5122" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}"> <div class="elementor-element elementor-element-37a42c8 elementor-widget elementor-widget-heading" data-id="37a42c8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> <h2 class="elementor-heading-title elementor-size-default">Creative Solutions for Global Brands</h2> </div> <div class="elementor-element elementor-element-243687b elementor-widget elementor-widget-text-editor" data-id="243687b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> <p><strong>AIRSANG</strong> delivers cost-effective website design and development, brand visuals, and cross-border ecommerce solutions for brands worldwide.</p> </div> <div class="elementor-element elementor-element-f7b7de6 e-transform elementor-align-justify elementor-mobile-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button" data-id="f7b7de6" data-element_type="widget" data-e-type="widget" data-settings="{"_animation":"none","_transform_translateX_effect_hover":{"unit":"px","size":0,"sizes":[]},"_transform_translateY_effect_hover":{"unit":"px","size":-5,"sizes":[]},"_transform_translateX_effect_hover_tablet":{"unit":"px","size":"","sizes":[]},"_transform_translateX_effect_hover_mobile":{"unit":"px","size":"","sizes":[]},"_transform_translateY_effect_hover_tablet":{"unit":"px","size":"","sizes":[]},"_transform_translateY_effect_hover_mobile":{"unit":"px","size":"","sizes":[]}}" data-widget_type="button.default"> <a class="elementor-button elementor-button-link elementor-size-sm" href="#"> <span class="elementor-button-content-wrapper"> <span class="elementor-button-text">Let's Talk</span> </span> </a> </div> </div> <div class="elementor-element elementor-element-3567646 e-con-full e-flex e-con e-child" data-id="3567646" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}"> <div class="elementor-element elementor-element-75a62a1 elementor-position-left elementor-position-top elementor-vertical-align-middle elementor-widget elementor-widget-image-box" data-id="75a62a1" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default"> <div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><a href="https://www.airsang.com/de/kontaktieren-sie-uns/" tabindex="-1"><img src="https://www.airsang.com/wp-content/uploads/airsang-post-templates/ab5497183e7ee4cdddffdd47.webp" title="" alt="" loading="lazy" /></a></figure><div class="elementor-image-box-content"><p class="elementor-image-box-description">Shopify Development</p></div></div> </div> </div> <div class="elementor-element elementor-element-b6eabb7 e-con-full e-flex e-con e-child" data-id="b6eabb7" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}"> <div class="elementor-element elementor-element-7759e1f elementor-position-left elementor-position-top elementor-vertical-align-middle elementor-widget elementor-widget-image-box" data-id="7759e1f" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default"> <div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><a href="https://www.airsang.com/de/dienstleistungen/" tabindex="-1"><img src="https://www.airsang.com/wp-content/uploads/airsang-post-templates/8a5f758291ed3fd452fd6dfc.webp" title="" alt="" loading="lazy" /></a></figure><div class="elementor-image-box-content"><p class="elementor-image-box-description">WordPress Development</p></div></div> </div> </div> <div class="elementor-element elementor-element-4611ee9 e-con-full e-flex e-con e-child" data-id="4611ee9" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}"> <div class="elementor-element elementor-element-f933a1d elementor-position-left elementor-position-top elementor-vertical-align-middle elementor-widget elementor-widget-image-box" data-id="f933a1d" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default"> <div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><a href="https://www.airsang.com/de/kontaktieren-sie-uns/" tabindex="-1"><img src="https://www.airsang.com/wp-content/uploads/airsang-post-templates/1b7f53749b4c0e4e73b6f338.webp" title="" alt="" loading="lazy" /></a></figure><div class="elementor-image-box-content"><p class="elementor-image-box-description">Web-UI-Design</p></div></div> </div> </div> <div class="elementor-element elementor-element-3f1d36f e-con-full e-flex e-con e-child" data-id="3f1d36f" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}"> <div class="elementor-element elementor-element-348e8d2 elementor-position-left elementor-position-top elementor-vertical-align-middle elementor-widget elementor-widget-image-box" data-id="348e8d2" data-element_type="widget" data-e-type="widget" data-widget_type="image-box.default"> <div class="elementor-image-box-wrapper"><figure class="elementor-image-box-img"><a href="https://www.airsang.com/de/kontaktieren-sie-uns/" tabindex="-1"><img src="https://www.airsang.com/wp-content/uploads/airsang-post-templates/8b45613bad7af14204e628d2.webp" title="" alt="" loading="lazy" /></a></figure><div class="elementor-image-box-content"><p class="elementor-image-box-description">Amazon Design</p></div></div> </div> </div> </div> </div> </div> <div class="elementor-element elementor-element-205fc06 e-flex e-con-boxed e-con e-parent" data-id="205fc06" data-element_type="container" data-e-type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-69ba58a elementor-widget__width-inherit elementor-widget elementor-widget-airsang_related_articles_posts_carousel" data-id="69ba58a" data-element_type="widget" data-e-type="widget" data-widget_type="airsang_related_articles_posts_carousel.default"> <div class="elementor-widget-container"> <section class="airsang-related-posts-carousel-wrap"> <div id="airsang-related-posts-carousel-69ba58a" class="airsang-related-posts-carousel" data-desktop="4" data-tablet="2" data-mobile="1" data-autoplay="no" data-delay="4200" > <div class="airsang-related-posts-carousel__header"> <h2 class="airsang-related-posts-carousel__title"> <span class="airsang-related-posts-carousel__title-main">More</span> <span class="airsang-related-posts-carousel__title-highlight">Fallstudien</span> </h2> </div> <div class="airsang-related-posts-carousel__shell"> <button class="airsang-related-posts-carousel__arrow airsang-related-posts-carousel__arrow--prev" type="button" aria-label="Previous" data-no-translation-aria-label="">‹</button> <button class="airsang-related-posts-carousel__arrow airsang-related-posts-carousel__arrow--next" type="button" aria-label="Next" data-no-translation-aria-label="">›</button> <div class="airsang-related-posts-carousel__viewport"> <div class="airsang-related-posts-carousel__track"> <article class="airsang-related-posts-carousel__slide"> <a class="airsang-related-posts-carousel__card" href="https://www.airsang.com/de/how-to-create-a-web-page-in-wordpress-step-by-step/"> <span class="airsang-related-posts-carousel__image"> <img src="https://www.airsang.com/wp-content/uploads/2026/04/image-111.png" alt="How to Create a Web Page in WordPress Step by Step"> </span> <span class="airsang-related-posts-carousel__body"> <span class="airsang-related-posts-carousel__post-title">How to Create a Web Page in WordPress Step by Step</span> <span class="airsang-related-posts-carousel__excerpt">Introduction If you’re building a website for the first time, one of the most essential skills you need is understanding how to create a web page in WordPress. Whether you’re launching a business site, a personal portfolio, or an eCommerce store, pages are the foundation of your website’s structure. Unlike blog posts,…</span> </span> </a> </article> <article class="airsang-related-posts-carousel__slide"> <a class="airsang-related-posts-carousel__card" href="https://www.airsang.com/de/how-to-backup-wordpress-site-on-ionos-easily/"> <span class="airsang-related-posts-carousel__image"> <img src="https://www.airsang.com/wp-content/uploads/2026/04/73.png" alt="How to Backup WordPress Site on IONOS Easily"> </span> <span class="airsang-related-posts-carousel__body"> <span class="airsang-related-posts-carousel__post-title">How to Backup WordPress Site on IONOS Easily</span> <span class="airsang-related-posts-carousel__excerpt">Introduction Backing up a WordPress website isn’t just a technical task—it’s a critical safety net for your entire online business. Whether you’re running an eCommerce store, a service-based website, or a content platform, data loss can happen at any time due to server issues, hacking, plugin conflicts, or human error. If you’re…</span> </span> </a> </article> <article class="airsang-related-posts-carousel__slide"> <a class="airsang-related-posts-carousel__card" href="https://www.airsang.com/de/aufbau-eines-skalierbaren-e-commerce-erlebnisses-fur-cosplay/"> <span class="airsang-related-posts-carousel__image"> <img src="https://www.airsang.com/wp-content/uploads/2026/06/08f5a5eb-4dad-48a8-a4fb-db1c2b424fb2-1-1024x768.png" alt="Building a Scalable Cosplay E-Commerce Experience"> </span> <span class="airsang-related-posts-carousel__body"> <span class="airsang-related-posts-carousel__post-title">Building a Scalable Cosplay E-Commerce Experience</span> <span class="airsang-related-posts-carousel__excerpt">Introduction A successful cosplay e-commerce website must do more than display products. It needs to help fans discover the right costume, understand product details, compare options, trust the store, and complete the purchase with confidence. For a category as visual and emotion-driven as cosplay, the website also needs to capture the excitement…</span> </span> </a> </article> <article class="airsang-related-posts-carousel__slide"> <a class="airsang-related-posts-carousel__card" href="https://www.airsang.com/de/schritt-fur-schritt-anleitung-zur-installation-von-wordpress/"> <span class="airsang-related-posts-carousel__image"> <img src="https://www.airsang.com/wp-content/uploads/2026/04/82-1024x683.png" alt="How to Install WordPress: A Beginner-Friendly Complete Guide"> </span> <span class="airsang-related-posts-carousel__body"> <span class="airsang-related-posts-carousel__post-title">How to Install WordPress: A Beginner-Friendly Complete Guide</span> <span class="airsang-related-posts-carousel__excerpt">Introduction If you’re planning to build a website, blog, or online store, learning how to install WordPress is one of the most important first steps. WordPress powers a huge portion of the internet thanks to its flexibility, scalability, and ease of use. Whether you’re a beginner or someone looking to improve your…</span> </span> </a> </article> <article class="airsang-related-posts-carousel__slide"> <a class="airsang-related-posts-carousel__card" href="https://www.airsang.com/de/lila-ozon-hauptbilddesign-fur-hohe-konversion/"> <span class="airsang-related-posts-carousel__image"> <img src="https://www.airsang.com/wp-content/uploads/2026/01/e0ff486c-a5fd-414b-8d50-d73d5dca1855-1024x683.png" alt="Purple Ozon Main Image Design for High Conversion"> </span> <span class="airsang-related-posts-carousel__body"> <span class="airsang-related-posts-carousel__post-title">Purple Ozon Main Image Design for High Conversion</span> <span class="airsang-related-posts-carousel__excerpt">When we design a main image for Ozon, we don’t start with decoration—we start with strategy. Ozon is a fast-scrolling marketplace where buyers make judgments in seconds. Our goal with this project was to create a purple-themed main image system that instantly communicates value, builds trust, and visually unifies multiple product categories…</span> </span> </a> </article> <article class="airsang-related-posts-carousel__slide"> <a class="airsang-related-posts-carousel__card" href="https://www.airsang.com/de/hauptbilddesign-fur-die-amazon-lippenstift-konvertierung/"> <span class="airsang-related-posts-carousel__image"> <img src="https://www.airsang.com/wp-content/uploads/2025/12/唇膏-2-1024x1024.jpg" alt="Main Image Design for Amazon Lipstick Conversion"> </span> <span class="airsang-related-posts-carousel__body"> <span class="airsang-related-posts-carousel__post-title">Main Image Design for Amazon Lipstick Conversion</span> <span class="airsang-related-posts-carousel__excerpt">Introduction: Designing a Lipstick Main Image That Sells on Amazon When we design a Main image for an Amazon lipstick, our responsibility goes far beyond making something look beautiful. On Amazon, a lipstick competes in one of the most visually saturated and emotionally driven categories. Customers make split-second decisions based on clarity,…</span> </span> </a> </article> <article class="airsang-related-posts-carousel__slide"> <a class="airsang-related-posts-carousel__card" href="https://www.airsang.com/de/industrial-wordpress-site-boosted-leads-300/"> <span class="airsang-related-posts-carousel__image"> <img src="https://www.airsang.com/wp-content/uploads/2026/04/e168b36e-0233-44d3-92fb-6c3e2d1ad382-1024x683.png" alt="Industrial WordPress Website Increased Leads by 300%"> </span> <span class="airsang-related-posts-carousel__body"> <span class="airsang-related-posts-carousel__post-title">Industrial WordPress Website Increased Leads by 300%</span> <span class="airsang-related-posts-carousel__excerpt">Introduction Creating a high-performing WordPress website for an industrial brand requires more than just assembling pages—it demands a clear structure, strategic content flow, and a design system that communicates trust and expertise. For the LSRPF project, the objective was to build a robust digital foundation that supports long-term growth while delivering a…</span> </span> </a> </article> <article class="airsang-related-posts-carousel__slide"> <a class="airsang-related-posts-carousel__card" href="https://www.airsang.com/de/shopify-pet-supplies-brand-website-website-design-case/"> <span class="airsang-related-posts-carousel__image"> <img src="https://www.airsang.com/wp-content/uploads/airsang-posts/83e0c57b39401f4bf60c4daa.webp" alt="Shopify pet supplies brand website website design case"> </span> <span class="airsang-related-posts-carousel__body"> <span class="airsang-related-posts-carousel__post-title">Shopify pet supplies brand website website design case</span> <span class="airsang-related-posts-carousel__excerpt">Project overview The client is a brand focusing on pet lifestyle products, mainly selling collars, leashes, pet clothing, sleep products, toys and personalized customized products. As the product line gradually enriched, the original page could no longer meet the new marketing needs in terms of brand atmosphere, product classification display and shopping…</span> </span> </a> </article> </div> </div> </div> <div class="airsang-related-posts-carousel__dots" aria-label="Carousel pagination" data-no-translation-aria-label=""></div> </div> </section> </div> </div> </div> </div> </div> <footer data-elementor-type="footer" data-elementor-id="1804" class="elementor elementor-1804 elementor-location-footer" data-elementor-post-type="elementor_library"> <div class="elementor-element elementor-element-c51c87a e-flex e-con-boxed e-con e-parent" data-id="c51c87a" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}"> <div class="e-con-inner"> <div class="elementor-element elementor-element-e05edcd e-flex e-con-boxed e-con e-child" data-id="e05edcd" data-element_type="container" data-e-type="container"> <div class="e-con-inner"> <div class="elementor-element elementor-element-a47fb91 e-con-full e-flex e-con e-child" data-id="a47fb91" data-element_type="container" data-e-type="container"> <div class="elementor-element elementor-element-e80b80b elementor-widget__width-initial elementor-widget elementor-widget-image" data-id="e80b80b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default"> <img loading="lazy" width="800" height="240" src="https://www.airsang.com/wp-content/uploads/airsang-pages/c71991f8bec8809971badeef.png" class="attachment-large size-large wp-image-15854" alt="" /> </div> <div class="elementor-element elementor-element-a1de5f0 elementor-shape-rounded elementor-grid-0 e-grid-align-center elementor-widget elementor-widget-social-icons" data-id="a1de5f0" data-element_type="widget" data-e-type="widget" data-widget_type="social-icons.default"> <div class="elementor-social-icons-wrapper elementor-grid" role="list"> <span class="elementor-grid-item" role="listitem"> <a class="elementor-icon elementor-social-icon elementor-social-icon-facebook elementor-repeater-item-3d53d9a" target="_blank"> <span class="elementor-screen-only">Facebook</span> <svg aria-hidden="true" class="e-font-icon-svg e-fab-facebook" viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path></svg> </a> </span> <span class="elementor-grid-item" role="listitem"> <a class="elementor-icon elementor-social-icon elementor-social-icon-x-twitter elementor-repeater-item-bbda424" target="_blank"> <span class="elementor-screen-only">X-twitter</span> <svg aria-hidden="true" class="e-font-icon-svg e-fab-x-twitter" viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg> </a> </span> <span class="elementor-grid-item" role="listitem"> <a class="elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-032d630" target="_blank"> <span class="elementor-screen-only">Youtube</span> <svg aria-hidden="true" class="e-font-icon-svg e-fab-youtube" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg> </a> </span> <span class="elementor-grid-item" role="listitem"> <a class="elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-b7e347f" target="_blank"> <span class="elementor-screen-only">Youtube</span> <svg aria-hidden="true" class="e-font-icon-svg e-fab-youtube" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg> </a> </span> <span class="elementor-grid-item" role="listitem"> <a class="elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-19b9288" target="_blank"> <span class="elementor-screen-only">Youtube</span> <svg aria-hidden="true" class="e-font-icon-svg e-fab-youtube" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg> </a> </span> </div> </div> <div class="elementor-element elementor-element-e50dfcd elementor-widget elementor-widget-text-editor" data-id="e50dfcd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> <p>AIRSANG provides cost-effective creative design and high-performance ecommerce websites to help your brand increase its influence on a global scale.</p> </div> </div> <div class="elementor-element elementor-element-f993ab4 e-con-full e-flex e-con e-child" data-id="f993ab4" data-element_type="container" data-e-type="container"> <div class="elementor-element elementor-element-cf22ba8 elementor-widget-mobile__width-initial elementor-widget elementor-widget-airsang_footer_list" data-id="cf22ba8" data-element_type="widget" data-e-type="widget" data-widget_type="airsang_footer_list.default"> <div class="elementor-widget-container"> <section class="airsang-footer-list-wrap"> <div class="airsang-footer-list"> <h3 class="airsang-footer-list__title">Gestaltung</h3> <ul class="airsang-footer-list__items"> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/website-design/">Website Design</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/shopify-website-design/">Ecommerce Store Design</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/amazon-design/">Amazon Design</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/shein-design/">SHEIN Design</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/markendesign-fallstudien/">Markendesign</a> </li> </ul> </div> </section> </div> </div> <div class="elementor-element elementor-element-d88f8e4 elementor-widget-mobile__width-initial elementor-widget elementor-widget-airsang_footer_list" data-id="d88f8e4" data-element_type="widget" data-e-type="widget" data-widget_type="airsang_footer_list.default"> <div class="elementor-widget-container"> <section class="airsang-footer-list-wrap"> <div class="airsang-footer-list"> <h3 class="airsang-footer-list__title">Technology and Operations</h3> <ul class="airsang-footer-list__items"> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/wordpress-website-design/">Webseitenentwicklung</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/custom-theme-development/">Custom Development</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/product-listing-services/">Product Listings</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/kontaktieren-sie-uns/">Social Media Management</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/seo-services/">Search Engine Optimization</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/kontaktieren-sie-uns/">Website Migration</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/kontaktieren-sie-uns/">Website Security</a> </li> </ul> </div> </section> </div> </div> <div class="elementor-element elementor-element-9df297f elementor-widget-mobile__width-initial elementor-widget elementor-widget-airsang_footer_list" data-id="9df297f" data-element_type="widget" data-e-type="widget" data-widget_type="airsang_footer_list.default"> <div class="elementor-widget-container"> <section class="airsang-footer-list-wrap"> <div class="airsang-footer-list"> <h3 class="airsang-footer-list__title">Über uns</h3> <ul class="airsang-footer-list__items"> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/portfolio/">Our Work</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/uber-uns/">Company Profile</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/blog/">Blog & Insights</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/kontaktieren-sie-uns/">Careers</a> </li> </ul> </div> </section> </div> </div> <div class="elementor-element elementor-element-78fcdc2 elementor-widget-mobile__width-initial elementor-widget elementor-widget-airsang_footer_list" data-id="78fcdc2" data-element_type="widget" data-e-type="widget" data-widget_type="airsang_footer_list.default"> <div class="elementor-widget-container"> <section class="airsang-footer-list-wrap"> <div class="airsang-footer-list"> <h3 class="airsang-footer-list__title">Unterstützung</h3> <ul class="airsang-footer-list__items"> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/nutzungsbedingungen/">Nutzungsbedingungen</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/kontaktieren-sie-uns/">Kontakt</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/blog/">Knowledge Base</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/kontaktieren-sie-uns/">Frequently Asked Questions</a> </li> <li class="airsang-footer-list__item"> <a class="airsang-footer-list__link" href="https://www.airsang.com/de/datenschutzrichtlinie/">Datenschutzbestimmungen</a> </li> </ul> </div> </section> </div> </div> </div> <div class="elementor-element elementor-element-e3ea2b4 e-con-full e-flex e-con e-child" data-id="e3ea2b4" data-element_type="container" data-e-type="container"> <div class="elementor-element elementor-element-6353444 elementor-widget elementor-widget-heading" data-id="6353444" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> <h2 class="elementor-heading-title elementor-size-default">Kontakt</h2> </div> <div class="elementor-element elementor-element-1596b74 elementor-position-inline-start elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="1596b74" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default"> <div class="elementor-icon-box-wrapper"> <div class="elementor-icon-box-icon"> <span class="elementor-icon"> <svg aria-hidden="true" class="e-font-icon-svg e-fas-map-marker-alt" viewbox="0 0 384 512" xmlns="http://www.w3.org/2000/svg"><path d="M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"></path></svg> </span> </div> <div class="elementor-icon-box-content"> <p class="elementor-icon-box-description"> Building 4, West Lake YOHO, Quanzhou City, Fujian Province 510-513 </p> </div> </div> </div> <div class="elementor-element elementor-element-0fbecf0 elementor-position-inline-start elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="0fbecf0" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default"> <div class="elementor-icon-box-wrapper"> <div class="elementor-icon-box-icon"> <span class="elementor-icon"> <svg aria-hidden="true" class="e-font-icon-svg e-fas-phone-alt" viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z"></path></svg> </span> </div> <div class="elementor-icon-box-content"> <p class="elementor-icon-box-description"> +86 17759522770 </p> </div> </div> </div> <div class="elementor-element elementor-element-618b284 elementor-position-inline-start elementor-mobile-position-inline-start elementor-view-default elementor-widget elementor-widget-icon-box" data-id="618b284" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default"> <div class="elementor-icon-box-wrapper"> <div class="elementor-icon-box-icon"> <span class="elementor-icon"> <svg aria-hidden="true" class="e-font-icon-svg e-fas-envelope" viewbox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg> </span> </div> <div class="elementor-icon-box-content"> <p class="elementor-icon-box-description"> support@airsang.com </p> </div> </div> </div> </div> </div> </div> <div class="elementor-element elementor-element-11af021 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="11af021" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default"> <div class="elementor-divider"> <span class="elementor-divider-separator"> </span> </div> </div> <div class="elementor-element elementor-element-fa5b0e8 e-con-full e-flex e-con e-child" data-id="fa5b0e8" data-element_type="container" data-e-type="container"> <div class="elementor-element elementor-element-04ccc0d elementor-widget-tablet__width-inherit elementor-widget-mobile__width-initial elementor-widget elementor-widget-airsang_platform_logo_marquee" data-id="04ccc0d" data-element_type="widget" data-e-type="widget" data-widget_type="airsang_platform_logo_marquee.default"> <div class="elementor-widget-container"> <div class="as-platform-marquee as-platform-marquee--pause as-platform-marquee--white" data-as-platform-marquee style="--as-duration: 40s;" role="region" aria-label="Platform logos"> <div class="as-platform-marquee__viewport"> <div class="as-platform-marquee__track"> <div class="as-platform-marquee__group"> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/25ffd4d933335a20abff31e0.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/25ffd4d933335a20abff31e0.webp" alt="Amazon" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/78aeef07b3a97110df832c29.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/78aeef07b3a97110df832c29.webp" alt="Shopify" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/3a611edcae0b6a2b97d5660a.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/3a611edcae0b6a2b97d5660a.webp" alt="WordPress" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/f38a30980bf6bbb12a330871.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/f38a30980bf6bbb12a330871.webp" alt="Magento" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/2cba7fa096de5c8dec6b76f0.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/2cba7fa096de5c8dec6b76f0.webp" alt="TEMU" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/cd108f5b5c34d881a3b7271d.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/cd108f5b5c34d881a3b7271d.webp" alt="Shoplazza" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/6e9a9fa95ef9142e928c296f.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/6e9a9fa95ef9142e928c296f.webp" alt="Wix" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/3d9c9b95e762a33e75a0146a.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/3d9c9b95e762a33e75a0146a.webp" alt="SHEIN" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/05bcf41dd353b901610f36ae.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/05bcf41dd353b901610f36ae.webp" alt="SHOPLINE" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/19f5094cdc56831d94c10b3e.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/19f5094cdc56831d94c10b3e.webp" alt="AliExpress" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/d3fb409967191fca0af8f028.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/d3fb409967191fca0af8f028.webp" alt="eBay" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/bb1cc6a8c648222b1b119429.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/bb1cc6a8c648222b1b119429.webp" alt="Coupang" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/a35070236019b220fc3e5188.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/a35070236019b220fc3e5188.webp" alt="Shopee" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/ba04a7777bfcc9c1b5eb70af.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/ba04a7777bfcc9c1b5eb70af.webp" alt="Taobao" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/141886635ec8271e87206dae.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/141886635ec8271e87206dae.webp" alt="Alibaba" loading="eager" decoding="async"> </span> <span class="as-platform-marquee__item"> <span class="as-platform-marquee__white-logo" aria-hidden="true" style="--as-logo-mask:url("https://www.airsang.com/wp-content/uploads/airsang-pages/77d139fc46e5487e333a7190.webp");"></span> <img class="as-platform-marquee__color-logo" src="https://www.airsang.com/wp-content/uploads/airsang-pages/77d139fc46e5487e333a7190.webp" alt="Ozon" loading="eager" decoding="async"> </span> </div> </div> </div> </div> </div> </div> <div class="elementor-element elementor-element-1ae1824 elementor-widget elementor-widget-heading" data-id="1ae1824" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> <h2 class="elementor-heading-title elementor-size-default"><a href="https://www.airsang.com/de/nutzungsbedingungen/">© 2026 AIRSANG. All rights reserved.</a></h2> </div> </div> </div> </div> </footer> <template id="tp-language" data-tp-language="de_DE"></template><script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/de/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hello-elementor/*","/de/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script> ( () => { const lazyloadRunObserver = () => { const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { entries.forEach( ( entry ) => { if ( entry.isIntersecting ) { let lazyloadBackground = entry.target; if( lazyloadBackground ) { lazyloadBackground.classList.add( 'e-lazyloaded' ); } lazyloadBackgroundObserver.unobserve( entry.target ); } }); }, { rootMargin: '200px 0px 200px 0px' } ); lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { lazyloadBackgroundObserver.observe( lazyloadBackground ); } ); }; const events = [ 'DOMContentLoaded', 'elementor/lazyload/observe', ]; events.forEach( ( event ) => { document.addEventListener( event, lazyloadRunObserver ); } ); } )(); </script> <script> (function () { var c = document.body.className; c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); document.body.className = c; })(); </script> <link rel='stylesheet' id='wc-blocks-style-css' href='https://www.airsang.com/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css?ver=wc-10.4.4' media='all' /> <script id="burst-js" defer src="https://www.airsang.com/wp-content/uploads/burst/js/burst.min.js?ver=1793521247"></script> <script id="trp-dynamic-translator-js-extra"> var trp_data = {"trp_custom_ajax_url":"https://www.airsang.com/wp-content/plugins/translatepress-multilingual/includes/trp-ajax.php","trp_wp_ajax_url":"https://www.airsang.com/wp-admin/admin-ajax.php","trp_language_to_query":"de_DE","trp_original_language":"en_US","trp_current_language":"de_DE","trp_skip_selectors":["[data-no-translation]","[data-no-dynamic-translation]","[data-trp-translate-id-innertext]","script","style","head","trp-span","translate-press","#billing_country","#shipping_country","#billing_state","#shipping_state","#select2-billing_country-results","#select2-billing_state-results","#select2-shipping_country-results","#select2-shipping_state-results","[data-trp-translate-id]","[data-trpgettextoriginal]","[data-trp-post-slug]"],"trp_base_selectors":["data-trp-translate-id","data-trpgettextoriginal","data-trp-post-slug"],"trp_attributes_selectors":{"text":{"accessor":"outertext","attribute":false},"block":{"accessor":"innertext","attribute":false},"image_src":{"selector":"img[src]","accessor":"src","attribute":true},"submit":{"selector":"input[type='submit'],input[type='button'], input[type='reset']","accessor":"value","attribute":true},"placeholder":{"selector":"input[placeholder],textarea[placeholder]","accessor":"placeholder","attribute":true},"title":{"selector":"[title]","accessor":"title","attribute":true},"a_href":{"selector":"a[href]","accessor":"href","attribute":true},"button":{"accessor":"outertext","attribute":false},"option":{"accessor":"innertext","attribute":false},"aria_label":{"selector":"[aria-label]","accessor":"aria-label","attribute":true},"video_src":{"selector":"video[src]","accessor":"src","attribute":true},"video_poster":{"selector":"video[poster]","accessor":"poster","attribute":true},"video_source_src":{"selector":"video source[src]","accessor":"src","attribute":true},"audio_src":{"selector":"audio[src]","accessor":"src","attribute":true},"audio_source_src":{"selector":"audio source[src]","accessor":"src","attribute":true},"picture_image_src":{"selector":"picture image[src]","accessor":"src","attribute":true},"picture_source_srcset":{"selector":"picture source[srcset]","accessor":"srcset","attribute":true},"image_alt":{"selector":"img[alt]","accessor":"alt","attribute":true},"meta_desc":{"selector":"meta[name=\"description\"],meta[property=\"og:title\"],meta[property=\"og:description\"],meta[property=\"og:site_name\"],meta[property=\"og:image:alt\"],meta[name=\"twitter:title\"],meta[name=\"twitter:description\"],meta[name=\"twitter:image:alt\"],meta[name=\"DC.Title\"],meta[name=\"DC.Description\"],meta[property=\"article:section\"],meta[property=\"article:tag\"]","accessor":"content","attribute":true},"page_title":{"selector":"title","accessor":"innertext","attribute":false},"meta_desc_img":{"selector":"meta[property=\"og:image\"],meta[property=\"og:image:secure_url\"],meta[name=\"twitter:image\"]","accessor":"content","attribute":true}},"trp_attributes_accessors":["outertext","innertext","src","value","placeholder","title","href","aria-label","poster","srcset","alt","content"],"gettranslationsnonceregular":"d2ac8abcc8","showdynamiccontentbeforetranslation":"","skip_strings_from_dynamic_translation":[],"skip_strings_from_dynamic_translation_for_substrings":{"href":["amazon-adsystem","googleads","g.doubleclick"]},"duplicate_detections_allowed":"100","trp_translate_numerals_opt":"no","trp_no_auto_translation_selectors":["[data-no-auto-translation]","ol.commentlist"]}; //# sourceURL=trp-dynamic-translator-js-extra </script> <script id="trp-dynamic-translator-js" src="https://www.airsang.com/wp-content/plugins/translatepress-multilingual/assets/js/trp-translate-dom-changes.js?ver=3.0.6"></script> <script id="airsang-elementor-ajax-tax-post-list-widget-js-after"> (function () { function getAjaxUrl(results) { if (results && results.getAttribute("data-ajax-url")) { return results.getAttribute("data-ajax-url"); } if (window.ajaxurl) { return window.ajaxurl; } return "https://www.airsang.com/wp-admin/admin-ajax.php"; } function init(root) { if (!root || root.dataset.atplReady === "yes") { return; } root.dataset.atplReady = "yes"; var results = root.querySelector(".airsang-ajax-tax-post-list__results"); var items = root.querySelector(".airsang-ajax-tax-post-list__items"); var status = root.querySelector("[data-atpl-status]"); var sentinel = root.querySelector("[data-atpl-sentinel]"); var viewport = root.querySelector(".airsang-ajax-tax-post-list__tabs-viewport"); if (!results || !items) { return; } var state = { termId: results.getAttribute("data-current-term") || "0", page: parseInt(results.getAttribute("data-current-page") || "1", 10) || 1, hasMore: results.getAttribute("data-has-more") === "yes", loading: false, infinite: results.getAttribute("data-enable-infinite") === "yes" }; function setStatus(text, loading) { if (!status) { return; } status.textContent = text || ""; status.classList.toggle("is-loading", !!loading); } function appendHtml(html) { if (!html) { return; } var temp = document.createElement("div"); temp.innerHTML = html; Array.prototype.slice.call(temp.children).forEach(function (node) { items.appendChild(node); }); } function requestPage(page, append) { if (state.loading) { return; } state.loading = true; results.classList.add("is-loading"); setStatus(results.getAttribute("data-loading-text") || "Loading...", true); var form = new FormData(); form.append("action", results.getAttribute("data-action") || "airsang_ajax_tax_post_list"); form.append("nonce", results.getAttribute("data-nonce") || ""); form.append("settings", results.getAttribute("data-settings") || "{}"); form.append("term_id", state.termId || "0"); form.append("page", String(page || 1)); fetch(getAjaxUrl(results), { method: "POST", credentials: "same-origin", body: form }) .then(function (response) { return response.json(); }) .then(function (payload) { if (!payload || !payload.success || !payload.data) { return; } if (append) { appendHtml(payload.data.html || ""); } else { items.innerHTML = payload.data.html || ""; } state.page = parseInt(payload.data.page || page, 10) || page; state.hasMore = !!payload.data.has_more; results.setAttribute("data-current-page", String(state.page)); results.setAttribute("data-has-more", state.hasMore ? "yes" : "no"); if (!state.hasMore) { setStatus(results.getAttribute("data-end-text") || "", false); } else { setStatus("", false); } }) .catch(function () { setStatus("", false); }) .finally(function () { state.loading = false; results.classList.remove("is-loading"); }); } function loadMore() { if (!state.infinite || !state.hasMore || state.loading) { return; } requestPage(state.page + 1, true); } root.addEventListener("click", function (event) { var tab = event.target.closest("[data-atpl-tab]"); var scroller = event.target.closest("[data-atpl-scroll]"); if (tab && root.contains(tab)) { event.preventDefault(); root.querySelectorAll("[data-atpl-tab]").forEach(function (item) { item.classList.remove("is-active"); }); tab.classList.add("is-active"); state.termId = tab.getAttribute("data-term-id") || "0"; state.page = 1; state.hasMore = true; results.setAttribute("data-current-term", state.termId); requestPage(1, false); return; } if (scroller && viewport && root.contains(scroller)) { event.preventDefault(); var dir = parseInt(scroller.getAttribute("data-atpl-scroll") || "1", 10) || 1; viewport.scrollBy({ left: dir * Math.max(160, Math.round(viewport.clientWidth * 0.7)), behavior: "smooth" }); } }); if (state.infinite && sentinel && "IntersectionObserver" in window) { var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { loadMore(); } }); }, { rootMargin: "420px 0px 420px 0px", threshold: 0 }); observer.observe(sentinel); } else if (state.infinite) { window.addEventListener("scroll", function () { var rect = root.getBoundingClientRect(); if (rect.bottom < window.innerHeight + 420) { loadMore(); } }, { passive: true }); } } function initAll(scope) { var root = scope || document; if (root.matches && root.matches("[data-airsang-ajax-tax-post-list]")) { init(root); } root.querySelectorAll && root.querySelectorAll("[data-airsang-ajax-tax-post-list]").forEach(init); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { initAll(document); }); } else { initAll(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangAtplHooksBound) { return; } window.__airsangAtplHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_ajax_tax_post_list.default", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } })(); //# sourceURL=airsang-elementor-ajax-tax-post-list-widget-js-after </script> <script id="airsang-elementor-ajax-post-search-widget-js-after"> (function () { function init(root) { if (!root || root.dataset.apsReady === "yes") { return; } root.dataset.apsReady = "yes"; var form = root.querySelector(".airsang-ajax-post-search__form"); var input = root.querySelector(".airsang-ajax-post-search__input"); var button = root.querySelector(".airsang-ajax-post-search__button"); var clearButton = root.querySelector("[data-aps-clear]"); var results = root.querySelector(".airsang-ajax-post-search__results"); if (!form || !input || !results) { return; } var collapseTimer = null; function setContent(html, loading) { results.innerHTML = html || ""; results.classList.toggle("has-content", !!html); results.classList.toggle("is-loading", !!loading); } function updateValueState() { root.classList.toggle("has-value", !!(input.value || "").trim()); } function collapseResults() { if (results.classList.contains("is-loading")) { return; } setContent("", false); } function search() { var keyword = (input.value || "").trim(); var loadingText = results.getAttribute("data-loading-text") || "Loading..."; updateValueState(); setContent("<div class=\"airsang-ajax-post-search__loading\">" + loadingText + "</div>", true); if (button) { button.disabled = true; } var formData = new FormData(); formData.append("action", results.getAttribute("data-action") || "airsang_ajax_post_search"); formData.append("nonce", results.getAttribute("data-nonce") || ""); formData.append("keyword", keyword); formData.append("settings", results.getAttribute("data-settings") || "{}"); fetch(results.getAttribute("data-ajax-url") || "https://www.airsang.com/wp-admin/admin-ajax.php", { method: "POST", credentials: "same-origin", body: formData }) .then(function (response) { return response.json(); }) .then(function (payload) { if (payload && payload.success && payload.data && typeof payload.data.html === "string") { setContent(payload.data.html, false); } else { setContent("", false); } }) .catch(function () { setContent("", false); }) .finally(function () { if (button) { button.disabled = false; } }); } form.addEventListener("submit", function (event) { event.preventDefault(); search(); }); input.addEventListener("input", updateValueState); if (clearButton) { clearButton.addEventListener("click", function (event) { event.preventDefault(); input.value = ""; updateValueState(); collapseResults(); input.focus(); }); } root.addEventListener("mouseenter", function () { if (collapseTimer) { window.clearTimeout(collapseTimer); collapseTimer = null; } }); root.addEventListener("mouseleave", function () { collapseTimer = window.setTimeout(collapseResults, 260); }); document.addEventListener("click", function (event) { if (!root.contains(event.target)) { collapseResults(); } }); updateValueState(); } function initAll(scope) { var root = scope || document; if (root.matches && root.matches("[data-airsang-ajax-post-search]")) { init(root); } root.querySelectorAll && root.querySelectorAll("[data-airsang-ajax-post-search]").forEach(init); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { initAll(document); }); } else { initAll(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangApsHooksBound) { return; } window.__airsangApsHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_ajax_post_search.default", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } })(); //# sourceURL=airsang-elementor-ajax-post-search-widget-js-after </script> <script id="airsang-elementor-app-data-ecosystem-widget-js-after"> (function () { function reveal(section) { if (section) { section.classList.add("is-visible"); } } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-app-data-ecosystem.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { sections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { sections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.16 }); sections.forEach(function (section) { if (!section.classList.contains("is-visible")) { observer.observe(section); } }); } function initAll(scope) { init(scope || document); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { initAll(document); }); } else { initAll(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangAdeHooksBound) { return; } window.__airsangAdeHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_app_data_ecosystem.default", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } })(); //# sourceURL=airsang-elementor-app-data-ecosystem-widget-js-after </script> <script id="airsang-elementor-shopify-build-services-cards-widget-js-after"> (function () { function reveal(section) { if (section) { section.classList.add("is-visible"); } } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-shopify-build-services.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { sections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { sections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.16 }); sections.forEach(function (section) { if (!section.classList.contains("is-visible")) { observer.observe(section); } }); } function initAll(scope) { init(scope || document); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { initAll(document); }); } else { initAll(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangSbsHooksBound) { return; } window.__airsangSbsHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_shopify_build_services_cards.default", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } })(); //# sourceURL=airsang-elementor-shopify-build-services-cards-widget-js-after </script> <script id="airsang-elementor-checkout-customer-journey-widget-js-after"> (function () { function reveal(section) { if (section) { section.classList.add("is-visible"); } } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-checkout-customer-journey.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { sections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { sections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.16 }); sections.forEach(function (section) { if (!section.classList.contains("is-visible")) { observer.observe(section); } }); } function initAll(scope) { init(scope || document); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { initAll(document); }); } else { initAll(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangCcjHooksBound) { return; } window.__airsangCcjHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_checkout_customer_journey.default", function ($scope) { initAll($scope && $scope[0] ? $scope[0] : document); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } })(); //# sourceURL=airsang-elementor-checkout-customer-journey-widget-js-after </script> <script id="airsang-elementor-seo-traffic-hero-widget-js-after"> (function () { function reveal(section) { if (!section) { return; } section.classList.add("is-visible"); } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-seo-traffic-hero.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { sections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { sections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.2 }); sections.forEach(function (section) { if (section.classList.contains("is-visible")) { return; } observer.observe(section); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { init(document); }); } else { init(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangSthHooksBound) { return; } window.__airsangSthHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_seo_traffic_hero.default", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } window.setTimeout(function () { init(document); }, 120); })(); //# sourceURL=airsang-elementor-seo-traffic-hero-widget-js-after </script> <script id="airsang-elementor-service-capability-cards-widget-js-after"> (function () { function reveal(section) { if (!section) { return; } section.classList.add("is-visible"); } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-service-capability-cards.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { sections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { sections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.16 }); sections.forEach(function (section) { if (section.classList.contains("is-visible")) { return; } observer.observe(section); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { init(document); }); } else { init(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangSccHooksBound) { return; } window.__airsangSccHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_service_capability_cards.default", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } window.setTimeout(function () { init(document); }, 120); })(); //# sourceURL=airsang-elementor-service-capability-cards-widget-js-after </script> <script id="airsang-elementor-why-seo-cards-widget-js-after"> (function () { function reveal(section) { if (!section) { return; } section.classList.add("is-visible"); } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-why-seo-cards.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { sections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { sections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.18 }); sections.forEach(function (section) { if (section.classList.contains("is-visible")) { return; } observer.observe(section); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { init(document); }); } else { init(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangWscHooksBound) { return; } window.__airsangWscHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_why_seo_cards.default", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } window.setTimeout(function () { init(document); }, 120); })(); //# sourceURL=airsang-elementor-why-seo-cards-widget-js-after </script> <script id="airsang-elementor-seo-step-image-tabs-widget-js-after"> (function () { function activate(section, index) { var buttons = section.querySelectorAll(".airsang-seo-step-tabs__step"); var panels = section.querySelectorAll(".airsang-seo-step-tabs__panel"); buttons.forEach(function (button, buttonIndex) { var active = buttonIndex === index; button.classList.toggle("is-active", active); button.setAttribute("aria-selected", active ? "true" : "false"); }); panels.forEach(function (panel, panelIndex) { var active = panelIndex === index; panel.classList.toggle("is-active", active); if (active) { panel.removeAttribute("hidden"); } else { window.setTimeout(function () { if (!panel.classList.contains("is-active")) { panel.setAttribute("hidden", "hidden"); } }, 430); } }); } function reveal(section) { if (!section) { return; } section.classList.add("is-visible"); } function setupTabs(section) { if (!section || section.dataset.airsangSitReady === "yes") { return; } section.dataset.airsangSitReady = "yes"; var buttons = section.querySelectorAll(".airsang-seo-step-tabs__step"); buttons.forEach(function (button, index) { button.addEventListener("click", function () { activate(section, index); }); }); activate(section, 0); } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-seo-step-tabs"); sections.forEach(setupTabs); var entranceSections = scope.querySelectorAll(".airsang-seo-step-tabs.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { entranceSections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { entranceSections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.18 }); entranceSections.forEach(function (section) { if (section.classList.contains("is-visible")) { return; } observer.observe(section); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { init(document); }); } else { init(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangSitHooksBound) { return; } window.__airsangSitHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_seo_step_image_tabs.default", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } window.setTimeout(function () { init(document); }, 120); })(); //# sourceURL=airsang-elementor-seo-step-image-tabs-widget-js-after </script> <script id="airsang-elementor-seo-process-workflow-widget-js-after"> (function () { function reveal(section) { if (!section) { return; } section.classList.add("is-visible"); } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-seo-process-workflow.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { sections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { sections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.18 }); sections.forEach(function (section) { if (section.classList.contains("is-visible")) { return; } observer.observe(section); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { init(document); }); } else { init(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangSpwHooksBound) { return; } window.__airsangSpwHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_seo_process_workflow.default", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } window.setTimeout(function () { init(document); }, 120); })(); //# sourceURL=airsang-elementor-seo-process-workflow-widget-js-after </script> <script id="airsang-elementor-service-tracks-cards-widget-js-after"> (function () { function reveal(section) { if (!section) { return; } section.classList.add("is-visible"); } function init(root) { var scope = root || document; var sections = scope.querySelectorAll(".airsang-service-tracks-cards.is-entrance-enabled"); if (document.body && (document.body.classList.contains("elementor-editor-active") || document.body.classList.contains("elementor-editor-preview"))) { sections.forEach(reveal); return; } if (!("IntersectionObserver" in window)) { sections.forEach(reveal); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { reveal(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.16 }); sections.forEach(function (section) { if (section.classList.contains("is-visible")) { return; } observer.observe(section); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { init(document); }); } else { init(document); } function bindElementorHooks() { if (!window.elementorFrontend || !window.elementorFrontend.hooks || window.__airsangStcHooksBound) { return; } window.__airsangStcHooksBound = true; window.elementorFrontend.hooks.addAction("frontend/element_ready/global", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_service_tracks_cards.default", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); } bindElementorHooks(); window.addEventListener("elementor/frontend/init", bindElementorHooks); if (window.jQuery) { window.jQuery(window).on("elementor/frontend/init", bindElementorHooks); } window.setTimeout(function () { init(document); }, 120); })(); //# sourceURL=airsang-elementor-service-tracks-cards-widget-js-after </script> <script id="airsang-elementor-related-articles-posts-carousel-widget-js-after"> (function() { if (window.__airsangRelatedPostsCarouselReady) { return; } window.__airsangRelatedPostsCarouselReady = true; function getPerView(root) { if (window.innerWidth <= 767) { return parseInt(root.getAttribute("data-mobile") || "1", 10); } if (window.innerWidth <= 1024) { return parseInt(root.getAttribute("data-tablet") || "2", 10); } return parseInt(root.getAttribute("data-desktop") || "3", 10); } function setup(root) { if (root.dataset.airsangRelatedReady === "yes") { return; } root.dataset.airsangRelatedReady = "yes"; var viewport = root.querySelector(".airsang-related-posts-carousel__viewport"); var track = root.querySelector(".airsang-related-posts-carousel__track"); var slides = Array.prototype.slice.call(root.querySelectorAll(".airsang-related-posts-carousel__slide")); var prev = root.querySelector(".airsang-related-posts-carousel__arrow--prev"); var next = root.querySelector(".airsang-related-posts-carousel__arrow--next"); var dotsWrap = root.querySelector(".airsang-related-posts-carousel__dots"); var index = 0; var timer = null; var startX = 0; var currentX = 0; var dragging = false; if (!viewport || !track || !slides.length) { return; } function maxIndex() { return Math.max(0, slides.length - getPerView(root)); } function gapValue() { return parseFloat(getComputedStyle(track).gap || "0") || 0; } function stepSize() { var rect = slides[0].getBoundingClientRect(); return rect.width + gapValue(); } function buildDots() { if (!dotsWrap) { return; } dotsWrap.innerHTML = ""; for (var i = 0; i <= maxIndex(); i++) { var dot = document.createElement("button"); dot.type = "button"; dot.className = "airsang-related-posts-carousel__dot"; dot.setAttribute("aria-label", "Go to slide " + (i + 1)); (function(dotIndex) { dot.addEventListener("click", function() { index = dotIndex; update(); restart(); }); })(i); dotsWrap.appendChild(dot); } } function update() { var perView = getPerView(root); root.style.setProperty("--airsang-related-per-view", perView); index = Math.max(0, Math.min(index, maxIndex())); track.style.transform = "translate3d(" + (-index * stepSize()) + "px, 0, 0)"; if (dotsWrap) { Array.prototype.slice.call(dotsWrap.children).forEach(function(dot, dotIndex) { dot.classList.toggle("is-active", dotIndex === index); }); } } function go(direction) { index += direction; if (index > maxIndex()) { index = 0; } if (index < 0) { index = maxIndex(); } update(); } function stop() { if (timer) { window.clearInterval(timer); timer = null; } } function start() { stop(); if (root.getAttribute("data-autoplay") !== "yes" || maxIndex() <= 0) { return; } timer = window.setInterval(function() { go(1); }, parseInt(root.getAttribute("data-delay") || "4200", 10)); } function restart() { stop(); start(); } if (prev) { prev.addEventListener("click", function() { go(-1); restart(); }); } if (next) { next.addEventListener("click", function() { go(1); restart(); }); } viewport.addEventListener("pointerdown", function(event) { dragging = true; startX = event.clientX; currentX = startX; track.style.transition = "none"; stop(); }); window.addEventListener("pointermove", function(event) { if (!dragging) { return; } currentX = event.clientX; track.style.transform = "translate3d(" + ((-index * stepSize()) + currentX - startX) + "px, 0, 0)"; }); window.addEventListener("pointerup", function() { if (!dragging) { return; } dragging = false; track.style.transition = ""; if (Math.abs(currentX - startX) > 48) { go(currentX < startX ? 1 : -1); } else { update(); } start(); }); window.addEventListener("resize", function() { buildDots(); update(); restart(); }); buildDots(); update(); start(); } function init() { document.querySelectorAll(".airsang-related-posts-carousel").forEach(setup); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } window.addEventListener("load", init); if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_related_articles_posts_carousel.default", init); } })(); //# sourceURL=airsang-elementor-related-articles-posts-carousel-widget-js-after </script> <script id="wp-hooks-js" src="https://www.airsang.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script> <script id="wp-i18n-js" src="https://www.airsang.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script> <script id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); //# sourceURL=wp-i18n-js-after </script> <script id="swv-js" src="https://www.airsang.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.4"></script> <script id="contact-form-7-js-translations"> ( function( domain, translations ) { var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; localeData[""].domain = domain; wp.i18n.setLocaleData( localeData, domain ); } )( "contact-form-7", {"translation-revision-date":"2025-10-26 03:28:49+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"de"},"This contact form is placed in the wrong place.":["Dieses Kontaktformular wurde an der falschen Stelle platziert."],"Error:":["Fehler:"]}},"comment":{"reference":"includes\/js\/index.js"}} ); //# sourceURL=contact-form-7-js-translations </script> <script id="contact-form-7-js-before"> var wpcf7 = { "api": { "root": "https:\/\/www.airsang.com\/de\/wp-json\/", "namespace": "contact-form-7\/v1" }, "cached": 1 }; //# sourceURL=contact-form-7-js-before </script> <script id="contact-form-7-js" src="https://www.airsang.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.4"></script> <script id="airsang-elementor-flip-case-stats-widget-js-after"> (function() { function formatValue(value, decimals) { var fixed = Number(value).toFixed(decimals); return decimals > 0 ? fixed : String(Math.round(Number(value))); } function animateCounter(counter) { if (!counter || counter.dataset.airsangFlipCounted === "yes") { return; } counter.dataset.airsangFlipCounted = "yes"; var target = parseFloat(counter.dataset.target || "0"); var decimals = parseInt(counter.dataset.decimals || "0", 10); var prefix = counter.dataset.prefix || ""; var suffix = counter.dataset.suffix || ""; var root = counter.closest(".airsang-flip-case-stats"); var duration = root ? parseInt(root.dataset.counterDuration || "1600", 10) : 1600; var start = null; if (!duration) { counter.textContent = prefix + formatValue(target, decimals) + suffix; return; } function step(timestamp) { if (!start) { start = timestamp; } var progress = Math.min((timestamp - start) / duration, 1); var eased = 1 - Math.pow(1 - progress, 3); var current = target * eased; counter.textContent = prefix + formatValue(current, decimals) + suffix; if (progress < 1) { window.requestAnimationFrame(step); } else { counter.textContent = prefix + formatValue(target, decimals) + suffix; } } window.requestAnimationFrame(step); } function initCounters(scope) { var counters = Array.prototype.slice.call((scope || document).querySelectorAll(".js-airsang-flip-counter")); if (!("IntersectionObserver" in window)) { counters.forEach(animateCounter); return; } var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { animateCounter(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.35 }); counters.forEach(function(counter) { observer.observe(counter); }); } function initFlip(scope) { var cards = Array.prototype.slice.call((scope || document).querySelectorAll(".airsang-flip-case-stats__card")); cards.forEach(function(card) { if (card.dataset.airsangFlipReady === "yes") { return; } card.dataset.airsangFlipReady = "yes"; card.addEventListener("click", function(event) { if (event.target.closest("a")) { return; } if (window.innerWidth <= 1024) { card.classList.toggle("is-flipped"); } }); }); } function init(scope) { initCounters(scope || document); initFlip(scope || document); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function() { init(document); }); } else { init(document); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_flip_case_stats.default", function($scope) { init($scope[0]); }); } })(); //# sourceURL=airsang-elementor-flip-case-stats-widget-js-after </script> <script id="airsang-elementor-process-accordion-widget-js-after"> (function() { function setItem(item, open) { var button = item.querySelector(".airsang-process-accordion__button"); var content = item.querySelector(".airsang-process-accordion__content"); item.classList.toggle("is-open", open); if (button) { button.setAttribute("aria-expanded", open ? "true" : "false"); } if (content) { if (open) { content.removeAttribute("hidden"); } else { content.setAttribute("hidden", "hidden"); } } } function initOne(root) { if (!root || root.dataset.airsangProcessAccordionReady === "yes") { return; } root.dataset.airsangProcessAccordionReady = "yes"; root.addEventListener("click", function(event) { var button = event.target.closest(".airsang-process-accordion__button"); if (!button || !root.contains(button)) { return; } var item = button.closest(".airsang-process-accordion__item"); var isOpen = item.classList.contains("is-open"); var behavior = root.getAttribute("data-behavior") || "single"; var closeAll = root.getAttribute("data-close-all") === "yes"; if (isOpen && !closeAll) { return; } if (behavior === "single" && !isOpen) { root.querySelectorAll(".airsang-process-accordion__item.is-open").forEach(function(openItem) { if (openItem !== item) { setItem(openItem, false); } }); } setItem(item, !isOpen); }); } function init(scope) { Array.prototype.slice.call((scope || document).querySelectorAll(".airsang-process-accordion")).forEach(initOne); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function() { init(document); }); } else { init(document); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_process_accordion.default", function($scope) { init($scope[0]); }); } })(); //# sourceURL=airsang-elementor-process-accordion-widget-js-after </script> <script id="airsang-elementor-scroll-driven-animation-widget-js-after"> (function() { if (window.__airsangScrollDrivenAnimationReady) { return; } window.__airsangScrollDrivenAnimationReady = true; var scenes = []; var ticking = false; function clamp(value, min, max) { return Math.min(max, Math.max(min, value)); } function ease(value, type) { value = clamp(value, 0, 1); if ("linear" === type) { return value; } if ("easeInOut" === type) { return value < .5 ? 4 * value * value * value : 1 - Math.pow(-2 * value + 2, 3) / 2; } return 1 - Math.pow(1 - value, 3); } function cssSizeToPx(value, axis, scene) { value = String(value || "0px").trim(); var number = parseFloat(value); if (isNaN(number)) { return 0; } if (value.indexOf("vw") > -1) { return window.innerWidth * number / 100; } if (value.indexOf("vh") > -1) { return window.innerHeight * number / 100; } if (value.indexOf("%") > -1) { var box = scene.querySelector(".airsang-scroll-scene__cluster") || scene; var size = "y" === axis ? box.offsetHeight : box.offsetWidth; return size * number / 100; } if (value.indexOf("rem") > -1) { return number * parseFloat(getComputedStyle(document.documentElement).fontSize || 16); } if (value.indexOf("em") > -1) { return number * 16; } return number; } function getCssNumber(element, name, fallback) { var value = getComputedStyle(element).getPropertyValue(name); var number = parseFloat(value); return isNaN(number) ? fallback : number; } function getProgress(scene) { var rect = scene.getBoundingClientRect(); var stickyTop = cssSizeToPx(getComputedStyle(scene).getPropertyValue("--airsang-scroll-sticky-top"), "y", scene); var range = Math.max(1, rect.height - window.innerHeight); var raw = (-rect.top + stickyTop) / range; var startOffset = parseFloat(scene.getAttribute("data-start-offset") || "0"); var endOffset = parseFloat(scene.getAttribute("data-end-offset") || "0"); var start = startOffset; var end = 1 + endOffset; if (Math.abs(end - start) < .001) { return raw >= end ? 1 : 0; } return clamp((raw - start) / (end - start), 0, 1); } function updateScene(scene) { var eased = ease(getProgress(scene), scene.getAttribute("data-easing") || "easeOut"); var media = scene.querySelectorAll(".airsang-scroll-scene__media"); var rings = scene.querySelectorAll(".airsang-scroll-scene__ring"); var corners = scene.querySelectorAll(".airsang-scroll-scene__corner"); var text = scene.querySelector(".airsang-scroll-scene__text"); var reducedMotion = window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches; if (reducedMotion) { eased = 1; } if (rings.length) { var ringStartScale = getCssNumber(scene, "--airsang-ring-start-scale", .72); var ringEndScale = getCssNumber(scene, "--airsang-ring-end-scale", 1); var ringStartOpacity = getCssNumber(scene, "--airsang-ring-start-opacity", .35); var ringEndOpacity = getCssNumber(scene, "--airsang-ring-end-opacity", 1); var ringScale = ringStartScale + (ringEndScale - ringStartScale) * eased; var ringOpacity = ringStartOpacity + (ringEndOpacity - ringStartOpacity) * eased; rings.forEach(function(ring, index) { var depthScale = ringScale + (rings.length - index - 1) * .035 * (1 - eased); ring.style.opacity = ringOpacity; ring.style.transform = "translate3d(-50%, -50%, 0) scale(" + depthScale + ")"; }); } if (corners.length) { var cornerStyle = getComputedStyle(scene); var cornerMoveX = cssSizeToPx(cornerStyle.getPropertyValue("--airsang-corner-move-x"), "x", scene); var cornerMoveY = cssSizeToPx(cornerStyle.getPropertyValue("--airsang-corner-move-y"), "y", scene); var cornerStartScale = getCssNumber(scene, "--airsang-corner-start-scale", .75); var cornerEndScale = getCssNumber(scene, "--airsang-corner-end-scale", 1); var cornerStartOpacity = getCssNumber(scene, "--airsang-corner-start-opacity", .35); var cornerEndOpacity = getCssNumber(scene, "--airsang-corner-end-opacity", 1); var cornerScale = cornerStartScale + (cornerEndScale - cornerStartScale) * eased; var cornerOpacity = cornerStartOpacity + (cornerEndOpacity - cornerStartOpacity) * eased; corners.forEach(function(corner) { var isRight = corner.classList.contains("airsang-scroll-scene__corner--right"); var dirX = isRight ? 1 : -1; var dirY = isRight ? -1 : 1; var x = dirX * cornerMoveX * (1 - eased); var y = dirY * cornerMoveY * (1 - eased); corner.style.opacity = cornerOpacity; corner.style.transform = "translate3d(" + x + "px, " + y + "px, 0) scale(" + cornerScale + ")"; }); } media.forEach(function(item) { var style = getComputedStyle(item); var startX = cssSizeToPx(style.getPropertyValue("--as-start-x"), "x", scene); var startY = cssSizeToPx(style.getPropertyValue("--as-start-y"), "y", scene); var endX = cssSizeToPx(style.getPropertyValue("--as-end-x"), "x", scene); var endY = cssSizeToPx(style.getPropertyValue("--as-end-y"), "y", scene); var startScale = getCssNumber(item, "--as-start-scale", .65); var endScale = getCssNumber(item, "--as-end-scale", 1); var startRotate = getCssNumber(item, "--as-start-rotate", 0); var endRotate = getCssNumber(item, "--as-end-rotate", 0); var startOpacity = getCssNumber(item, "--as-start-opacity", 0); var endOpacity = getCssNumber(item, "--as-end-opacity", 1); var x = startX + (endX - startX) * eased; var y = startY + (endY - startY) * eased; var scale = startScale + (endScale - startScale) * eased; var rotate = startRotate + (endRotate - startRotate) * eased; var opacity = startOpacity + (endOpacity - startOpacity) * eased; item.style.opacity = opacity; item.style.transform = "translate3d(-50%, -50%, 0) translate3d(" + x + "px, " + y + "px, 0) scale(" + scale + ") rotate(" + rotate + "deg)"; }); if (text) { var textOpacity = clamp((eased - .38) / .35, 0, 1); var textLift = (1 - textOpacity) * 34; text.style.opacity = textOpacity; text.style.transform = "translate3d(-50%, calc(-50% + var(--airsang-scroll-text-y, 0px) + " + textLift + "px), 0) scale(" + (.96 + textOpacity * .04) + ")"; } } function requestUpdate() { if (ticking) { return; } ticking = true; window.requestAnimationFrame(function() { scenes.forEach(updateScene); ticking = false; }); } function init() { scenes = Array.prototype.slice.call(document.querySelectorAll(".airsang-scroll-scene")); requestUpdate(); } document.addEventListener("DOMContentLoaded", init); window.addEventListener("load", init); window.addEventListener("scroll", requestUpdate, { passive: true }); window.addEventListener("resize", requestUpdate); if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_scroll_driven_animation.default", function() { init(); }); } init(); })(); //# sourceURL=airsang-elementor-scroll-driven-animation-widget-js-after </script> <script id="airsang-elementor-dynamic-hashtag-headline-widget-js-after"> (function() { if (window.__airsangDynamicHashtagHeadlineReady) { return; } window.__airsangDynamicHashtagHeadlineReady = true; function setup(root) { if (root.dataset.airsangDynamicHashtagReady === "yes") { return; } root.dataset.airsangDynamicHashtagReady = "yes"; var viewport = root.querySelector(".airsang-dynamic-hashtag-headline__word-viewport"); var track = root.querySelector(".airsang-dynamic-hashtag-headline__word-track"); var items = track ? Array.prototype.slice.call(track.querySelectorAll(".airsang-dynamic-hashtag-headline__word")) : []; if (!viewport || !track || items.length <= 1) { return; } var interval = parseInt(root.getAttribute("data-interval") || "1800", 10); var pauseOnHover = root.getAttribute("data-pause-hover") === "yes"; var index = 0; var timer = null; function measure() { var maxHeight = 0; items.forEach(function(item) { item.style.height = "auto"; maxHeight = Math.max(maxHeight, item.offsetHeight); }); if (maxHeight > 0) { viewport.style.height = maxHeight + "px"; items.forEach(function(item) { item.style.height = maxHeight + "px"; }); } } function update() { measure(); var itemHeight = viewport.offsetHeight || items[index].offsetHeight || 0; track.style.transform = "translate3d(0," + (-index * itemHeight) + "px,0)"; items.forEach(function(item, itemIndex) { item.classList.toggle("is-active", itemIndex === index); }); } function changeWord() { index = (index + 1) % items.length; update(); } function start() { stop(); timer = window.setInterval(changeWord, Math.max(interval, 600)); } function stop() { if (timer) { window.clearInterval(timer); timer = null; } } if (pauseOnHover) { root.addEventListener("mouseenter", stop); root.addEventListener("mouseleave", start); } update(); window.addEventListener("resize", update); start(); } function init() { document.querySelectorAll(".airsang-dynamic-hashtag-headline").forEach(setup); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", init); } else { init(); } window.addEventListener("load", init); if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_dynamic_hashtag_headline.default", init); } })(); //# sourceURL=airsang-elementor-dynamic-hashtag-headline-widget-js-after </script> <script id="airsang-elementor-sticky-tabs-image-carousel-widget-js-after"> (function() { function init(root) { if (!root || root.dataset.airsangStickyCarouselReady === "1") { return; } root.dataset.airsangStickyCarouselReady = "1"; var buttons = Array.prototype.slice.call(root.querySelectorAll(".airsang-sticky-tabs-carousel__tab")); var panels = Array.prototype.slice.call(root.querySelectorAll(".airsang-sticky-tabs-carousel__panel")); var ticking = false; var autoplayTimer = null; function setActiveImage(panel) { var items = Array.prototype.slice.call(panel.querySelectorAll(".airsang-sticky-tabs-carousel__item")); var images = Array.prototype.slice.call(panel.querySelectorAll(".airsang-sticky-tabs-carousel__image")); var visualCard = panel.querySelector(".airsang-sticky-tabs-carousel__visual-card"); var trigger = window.innerHeight * 0.46; var activeIndex = 0; var closest = Infinity; if (visualCard) { var visualRect = visualCard.getBoundingClientRect(); trigger = visualRect.top + visualRect.height / 2; } items.forEach(function(item, index) { var rect = item.getBoundingClientRect(); var center = rect.top + rect.height / 2; var distance = Math.abs(center - trigger); if (distance < closest) { closest = distance; activeIndex = index; } }); items.forEach(function(item, index) { item.classList.toggle("is-active", index === activeIndex); }); images.forEach(function(image, index) { image.classList.toggle("is-active", index === activeIndex); image.classList.toggle("is-before", index < activeIndex); image.classList.toggle("is-after", index > activeIndex); }); } function update() { ticking = false; panels.forEach(function(panel) { if (panel.classList.contains("is-active")) { setActiveImage(panel); } }); } function requestUpdate() { if (ticking) { return; } ticking = true; window.requestAnimationFrame(update); } function updateMobileDots(panel) { var track = panel.querySelector(".airsang-sticky-tabs-carousel__mobile-track"); var dots = Array.prototype.slice.call(panel.querySelectorAll("[data-mobile-dot]")); var slides = Array.prototype.slice.call(panel.querySelectorAll("[data-mobile-slide]")); if (!track || !dots.length || !slides.length) { return; } var active = 0; var trackRect = track.getBoundingClientRect(); var trackCenter = trackRect.left + trackRect.width / 2; var closest = Infinity; slides.forEach(function(slide, index) { var rect = slide.getBoundingClientRect(); var center = rect.left + rect.width / 2; var distance = Math.abs(center - trackCenter); if (distance < closest) { closest = distance; active = index; } }); dots.forEach(function(dot, index) { dot.classList.toggle("is-active", index === active); }); } function bindMobileCarousel(panel) { var track = panel.querySelector(".airsang-sticky-tabs-carousel__mobile-track"); var dots = Array.prototype.slice.call(panel.querySelectorAll("[data-mobile-dot]")); if (!track || track.dataset.bound === "1") { return; } track.dataset.bound = "1"; track.addEventListener("scroll", function() { window.requestAnimationFrame(function() { updateMobileDots(panel); }); }, { passive: true }); dots.forEach(function(dot) { dot.addEventListener("click", function() { var index = parseInt(dot.dataset.mobileDot || "0", 10); scrollMobileTo(panel, index, "smooth"); }); }); } function scrollMobileTo(panel, index, behavior) { var track = panel.querySelector(".airsang-sticky-tabs-carousel__mobile-track"); var slides = Array.prototype.slice.call(panel.querySelectorAll("[data-mobile-slide]")); if (!track || !slides[index]) { return; } track.scrollTo({ left: slides[index].offsetLeft, behavior: behavior || "smooth" }); } function activate(index) { buttons.forEach(function(button, buttonIndex) { var active = buttonIndex === index; button.classList.toggle("is-active", active); button.setAttribute("aria-selected", active ? "true" : "false"); button.tabIndex = active ? 0 : -1; }); panels.forEach(function(panel, panelIndex) { var active = panelIndex === index; panel.classList.toggle("is-active", active); if (active) { panel.removeAttribute("hidden"); bindMobileCarousel(panel); updateMobileDots(panel); } else { panel.setAttribute("hidden", "hidden"); } }); root.dataset.active = String(index); requestUpdate(); } function startAutoplay() { if (root.dataset.mobileAutoplay !== "1") { return; } var delay = parseInt(root.dataset.mobileDelay || "3000", 10); window.clearInterval(autoplayTimer); autoplayTimer = window.setInterval(function() { if (window.innerWidth > 767) { return; } var panel = root.querySelector(".airsang-sticky-tabs-carousel__panel.is-active"); var track = panel ? panel.querySelector(".airsang-sticky-tabs-carousel__mobile-track") : null; var slides = panel ? Array.prototype.slice.call(panel.querySelectorAll("[data-mobile-slide]")) : []; if (!track || slides.length < 2) { return; } var activeDot = panel.querySelector("[data-mobile-dot].is-active"); var current = activeDot ? parseInt(activeDot.dataset.mobileDot || "0", 10) : 0; var next = (current + 1) % slides.length; scrollMobileTo(panel, next, "smooth"); }, delay); } buttons.forEach(function(button, index) { button.addEventListener("click", function() { activate(index); }); }); activate(parseInt(root.dataset.active || "0", 10)); startAutoplay(); window.addEventListener("scroll", requestUpdate, { passive: true }); window.addEventListener("resize", requestUpdate); window.addEventListener("load", requestUpdate); } function boot(scope) { (scope || document).querySelectorAll(".airsang-sticky-tabs-carousel").forEach(init); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function() { boot(document); }); } else { boot(document); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_sticky_tabs_image_carousel.default", function($scope) { boot($scope && $scope[0] ? $scope[0] : document); }); } })(); //# sourceURL=airsang-elementor-sticky-tabs-image-carousel-widget-js-after </script> <script id="airsang-elementor-industry-experience-brand-wall-widget-js-after"> (function () { function formatNumber(value, separator) { var rounded = Math.round(value); if (separator !== "yes") { return String(rounded); } return String(rounded).replace(/\B(?=(\d{3})+(?!\d))/g, ","); } function animateCounter(counter) { if (!counter || counter.dataset.airsangAnimated === "yes") { return; } counter.dataset.airsangAnimated = "yes"; var target = parseFloat(counter.dataset.target || "0"); var suffix = counter.dataset.suffix || ""; var duration = parseInt(counter.dataset.duration || "1800", 10); var separator = counter.dataset.separator || "no"; var startTime = null; function tick(timestamp) { if (!startTime) { startTime = timestamp; } var progress = Math.min((timestamp - startTime) / duration, 1); var eased = 1 - Math.pow(1 - progress, 3); var current = target * eased; counter.textContent = formatNumber(current, separator) + suffix; if (progress < 1) { window.requestAnimationFrame(tick); } else { counter.textContent = formatNumber(target, separator) + suffix; } } window.requestAnimationFrame(tick); } function initCounters(root) { var scope = root || document; var counters = scope.querySelectorAll(".airsang-industry-brand-wall__counter"); if (!("IntersectionObserver" in window)) { counters.forEach(animateCounter); return; } var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { if (entry.isIntersecting) { animateCounter(entry.target); observer.unobserve(entry.target); } }); }, { threshold: 0.35 }); counters.forEach(function (counter) { observer.observe(counter); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { initCounters(document); }); } else { initCounters(document); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_industry_experience_brand_wall.default", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; initCounters(node); }); } })(); //# sourceURL=airsang-elementor-industry-experience-brand-wall-widget-js-after </script> <script id="airsang-elementor-website-case-scroll-showcase-widget-js-after"> (function () { function setStackState(cards, activeIndex) { var total = cards.length; cards.forEach(function (card) { card.classList.remove("is-active", "is-prev", "is-next", "is-hidden"); card.classList.add("is-hidden"); }); if (!total) { return; } var prevIndex = (activeIndex - 1 + total) % total; var nextIndex = (activeIndex + 1) % total; cards[activeIndex].classList.remove("is-hidden"); cards[activeIndex].classList.add("is-active"); if (total > 1) { cards[nextIndex].classList.remove("is-hidden"); cards[nextIndex].classList.add("is-next"); } if (total > 2) { cards[prevIndex].classList.remove("is-hidden"); cards[prevIndex].classList.add("is-prev"); } } function initViewport(viewport) { if (!viewport || viewport.dataset.airsangWcssReady === "yes") { return; } var cards = Array.prototype.slice.call(viewport.querySelectorAll(".airsang-website-case-scroll__case-card")); if (!cards.length) { return; } viewport.dataset.airsangWcssReady = "yes"; var activeIndex = cards.findIndex(function (card) { return card.classList.contains("is-active"); }); if (activeIndex < 0) { activeIndex = 0; } setStackState(cards, activeIndex); if (cards.length < 2 || window.matchMedia("(prefers-reduced-motion: reduce)").matches) { return; } var interval = parseInt(viewport.dataset.interval || "3000", 10); var direction = viewport.dataset.direction === "down" ? -1 : 1; var paused = false; var root = viewport.closest(".airsang-website-case-scroll"); interval = Math.max(800, Math.min(interval, 20000)); function step() { if (paused) { return; } activeIndex = (activeIndex + direction + cards.length) % cards.length; setStackState(cards, activeIndex); } if (root && root.classList.contains("is-pause-on-hover")) { viewport.addEventListener("mouseenter", function () { paused = true; }); viewport.addEventListener("mouseleave", function () { paused = false; }); } viewport._airsangWcssTimer = window.setInterval(step, interval); } function init(root) { var scope = root || document; var viewports = scope.querySelectorAll(".airsang-website-case-scroll__case-viewport"); viewports.forEach(function (viewport) { if (viewport._airsangWcssTimer) { window.clearInterval(viewport._airsangWcssTimer); viewport.dataset.airsangWcssReady = ""; } initViewport(viewport); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", function () { init(document); }); } else { init(document); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction("frontend/element_ready/airsang_website_case_scroll_showcase.default", function ($scope) { var node = $scope && $scope[0] ? $scope[0] : document; init(node); }); } })(); //# sourceURL=airsang-elementor-website-case-scroll-showcase-widget-js-after </script> <script id="airsang-elementor-platform-logo-marquee-js-after"> (function () { function init(root) { if (root.dataset.asMarqueeReady) return; root.dataset.asMarqueeReady = '1'; var viewport = root.querySelector('.as-platform-marquee__viewport'); var track = root.querySelector('.as-platform-marquee__track'); var group = root.querySelector('.as-platform-marquee__group'); if (!viewport || !track || !group) return; function rebuild() { track.querySelectorAll('[data-as-marquee-clone]').forEach(function (clone) { clone.remove(); }); var width = group.getBoundingClientRect().width; if (!width) return; var copies = Math.max(2, Math.ceil(viewport.clientWidth / width) + 2); for (var i = 1; i < copies; i++) { var clone = group.cloneNode(true); clone.setAttribute('data-as-marquee-clone', ''); clone.setAttribute('aria-hidden', 'true'); clone.querySelectorAll('a').forEach(function (link) { link.tabIndex = -1; }); clone.querySelectorAll('img').forEach(function (image) { image.alt = ''; image.loading = 'lazy'; }); track.appendChild(clone); } root.style.setProperty('--as-group-width', width + 'px'); root.classList.add('is-ready'); } rebuild(); if (window.ResizeObserver) { var observer = new ResizeObserver(rebuild); observer.observe(group); observer.observe(viewport); } else { window.addEventListener('resize', rebuild); } } function scan(scope) { if (scope.matches && scope.matches('[data-as-platform-marquee]')) init(scope); scope.querySelectorAll('[data-as-platform-marquee]').forEach(init); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function () { scan(document); }); } else { scan(document); } if (window.jQuery) { window.jQuery(window).on('elementor/frontend/init', function () { elementorFrontend.hooks.addAction('frontend/element_ready/airsang_platform_logo_marquee.default', function ($scope) { scan($scope[0]); }); }); } })(); //# sourceURL=airsang-elementor-platform-logo-marquee-js-after </script> <script id="airsang-why-video-mask-widget-js-after"> (function () { function init(root) { if (root.dataset.asWhyMaskReady) return; root.dataset.asWhyMaskReady = '1'; var video = root.querySelector('.as-why-mask__video'); var media = root.querySelector('.as-why-mask__media'); if (!video) return; var reduced = window.matchMedia('(prefers-reduced-motion: reduce)'); video.muted = true; function pause() { video.pause(); root.classList.remove('is-playing'); } function play() { if (reduced.matches || document.hidden) return; if (!video.src) { video.src = video.dataset.src; video.load(); } var result = video.play(); if (result && result.catch) result.catch(pause); } video.addEventListener('playing', function () { root.classList.add('is-playing'); }); video.addEventListener('pause', function () { root.classList.remove('is-playing'); }); if ('IntersectionObserver' in window) { var observer = new IntersectionObserver(function (entries) { entries.forEach(function (entry) { root.dataset.asWhyMaskVisible = entry.isIntersecting ? '1' : '0'; if (entry.isIntersecting) play(); else pause(); }); }, { threshold: 0.2 }); observer.observe(media || root); } else { play(); } document.addEventListener('visibilitychange', function () { if (document.hidden) pause(); else if (root.dataset.asWhyMaskVisible === '1') play(); }); if (reduced.addEventListener) reduced.addEventListener('change', function () { if (reduced.matches) pause(); else if (root.dataset.asWhyMaskVisible === '1') play(); }); } function scan(scope) { if (scope.matches && scope.matches('[data-as-why-mask]')) init(scope); scope.querySelectorAll('[data-as-why-mask]').forEach(init); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function () { scan(document); }); } else { scan(document); } function bindElementor() { elementorFrontend.hooks.addAction('frontend/element_ready/airsang_why_video_mask.default', function ($scope) { scan($scope[0]); }); } if (window.elementorFrontend && elementorFrontend.hooks) bindElementor(); else if (window.jQuery) window.jQuery(window).on('elementor/frontend/init', bindElementor); })(); //# sourceURL=airsang-why-video-mask-widget-js-after </script> <script id="elementor-webpack-runtime-js" src="https://www.airsang.com/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.2.3"></script> <script id="elementor-frontend-modules-js" src="https://www.airsang.com/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.2.3"></script> <script id="jquery-ui-core-js-before"> jQuery.uiBackCompat = true; //# sourceURL=jquery-ui-core-js-before </script> <script id="jquery-ui-core-js" src="https://www.airsang.com/wp-includes/js/jquery/ui/core.min.js?ver=1.14.2"></script> <script id="elementor-frontend-js-before"> var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Auf Facebook teilen","shareOnX":"Auf X teilen","pinIt":"Anpinnen","download":"Herunterladen","downloadImage":"Bild herunterladen","fullscreen":"Vollbild","zoom":"Zoom","share":"Aktie","playVideo":"Video abspielen","previous":"Vorherige","next":"N\u00e4chste","close":"Schlie\u00dfen","a11yCarouselPrevSlideMessage":"Vorherige Folie","a11yCarouselNextSlideMessage":"N\u00e4chste Folie","a11yCarouselFirstSlideMessage":"Dies ist die erste Folie","a11yCarouselLastSlideMessage":"Dies ist die letzte Folie.","a11yCarouselPaginationBulletMessage":"Zur Folie gehen"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobil Hochformat","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobil Querformat","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Hochformat","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Querformat","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Breitbild","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":false},"version":"4.2.3","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"container":true,"e_optimized_markup":true,"e_panel_promotions":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"e_pro_free_trial_popup":true,"nested-elements":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_opt_in_v4_page":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true,"e_pro_atomic_form":true,"e_pro_collection_loop":true,"mega-menu":true,"e_pro_variables":true,"e_pro_interactions":true},"urls":{"assets":"https:\/\/www.airsang.com\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/www.airsang.com\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/www.airsang.com\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"6f96742e21","atomicFormsSendForm":"96751177e0"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description","woocommerce_notices_elements":[]},"post":{"id":9884,"title":"Where%20Is%20the%20SEO%20Title%20in%20WordPress%3F%20A%20Simple%20Guide","excerpt":"","featuredImage":"https:\/\/www.airsang.com\/wp-content\/uploads\/2026\/05\/image-119-1024x559.png"}}; //# sourceURL=elementor-frontend-js-before </script> <script id="elementor-frontend-js" src="https://www.airsang.com/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.2.3"></script> <script id="e-sticky-js" src="https://www.airsang.com/wp-content/plugins/elementor-pro/assets/lib/sticky/jquery.sticky.min.js?ver=4.2.2"></script> <script id="sourcebuster-js-js" src="https://www.airsang.com/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=10.4.4"></script> <script id="wc-order-attribution-js-extra"> var wc_order_attribution = {"params":{"lifetime":1.0e-5,"session":30,"base64":false,"ajaxurl":"https://www.airsang.com/wp-admin/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}}; //# sourceURL=wc-order-attribution-js-extra </script> <script id="wc-order-attribution-js" src="https://www.airsang.com/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=10.4.4"></script> <script id="google-recaptcha-js" src="https://www.google.com/recaptcha/api.js?render=6LddcCosAAAAAO2XsAPM-YS98Y8FSxZDeKfsJjyc&ver=3.0"></script> <script id="wp-polyfill-js" src="https://www.airsang.com/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0"></script> <script id="wpcf7-recaptcha-js-before"> var wpcf7_recaptcha = { "sitekey": "6LddcCosAAAAAO2XsAPM-YS98Y8FSxZDeKfsJjyc", "actions": { "homepage": "homepage", "contactform": "contactform" } }; //# sourceURL=wpcf7-recaptcha-js-before </script> <script id="wpcf7-recaptcha-js" src="https://www.airsang.com/wp-content/plugins/contact-form-7/modules/recaptcha/index.js?ver=6.1.4"></script> <script id="elementor-pro-webpack-runtime-js" src="https://www.airsang.com/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=4.2.2"></script> <script id="elementor-pro-frontend-js-before"> var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/www.airsang.com\/wp-admin\/admin-ajax.php","nonce":"e4c83ce6e8","urls":{"assets":"https:\/\/www.airsang.com\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/www.airsang.com\/de\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"woocommerce":{"menu_cart":{"cart_page_url":"https:\/\/www.airsang.com\/de\/wagen-2\/","checkout_page_url":"https:\/\/www.airsang.com\/de\/checkout-2\/","fragments_nonce":"b224913668"}},"facebook_sdk":{"lang":"de_DE","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/www.airsang.com\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; //# sourceURL=elementor-pro-frontend-js-before </script> <script id="elementor-pro-frontend-js" src="https://www.airsang.com/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=4.2.2"></script> <script id="pro-elements-handlers-js" src="https://www.airsang.com/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=4.2.2"></script> <script id="wp-emoji-settings" type="application/json"> {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.airsang.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.4"}} </script> <script type="module"> /*! This file is auto-generated */ var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); //# sourceURL=https://www.airsang.com/wp-includes/js/wp-emoji-loader.min.js </script> <script> (function() { function initCaseCenter(root) { if (!root || root.dataset.airsangCaseCenterReady === 'yes') { return; } root.dataset.airsangCaseCenterReady = 'yes'; var results = root.querySelector('.airsang-case-center__results'); var clearButton = root.querySelector('[data-clear-filter]'); var selected = {}; if (!results) { return; } var loadMoreButton = root.querySelector('[data-load-more]'); var currentPage = parseInt(results.getAttribute('data-current-page') || '1', 10) || 1; function resetDropdownPosition(dropdown) { var menu = dropdown ? dropdown.querySelector('.airsang-case-center__dropdown-menu') : null; if (!menu) { return; } menu.style.top = ''; menu.style.left = ''; menu.style.right = ''; menu.style.bottom = ''; menu.style.maxHeight = ''; } function positionDropdownMenu(dropdown) { var menu = dropdown ? dropdown.querySelector('.airsang-case-center__dropdown-menu') : null; var toggle = dropdown ? dropdown.querySelector('[data-dropdown-toggle]') : null; if (!menu || !toggle) { return; } if (!window.matchMedia('(max-width: 767px)').matches) { resetDropdownPosition(dropdown); return; } var filters = root.querySelector('.airsang-case-center__filters'); var rect = toggle.getBoundingClientRect(); var filtersRect = filters ? filters.getBoundingClientRect() : rect; var side = 16; var gap = 10; var top = Math.max(side, Math.max(rect.bottom, filtersRect.bottom) + gap); var maxHeight = Math.max(180, window.innerHeight - top - side); menu.style.top = top + 'px'; menu.style.left = side + 'px'; menu.style.right = side + 'px'; menu.style.bottom = 'auto'; menu.style.maxHeight = maxHeight + 'px'; } function closeDropdowns(except) { root.querySelectorAll('.airsang-case-center__dropdown.is-open').forEach(function(dropdown) { if (except !== dropdown) { dropdown.classList.remove('is-open'); resetDropdownPosition(dropdown); var button = dropdown.querySelector('[data-dropdown-toggle]'); if (button) { button.setAttribute('aria-expanded', 'false'); } } }); } function repositionOpenDropdowns() { root.querySelectorAll('.airsang-case-center__dropdown.is-open').forEach(positionDropdownMenu); } var repositionFrame = null; function queueRepositionOpenDropdowns() { if (repositionFrame) { return; } repositionFrame = window.requestAnimationFrame(function() { repositionFrame = null; repositionOpenDropdowns(); }); } window.addEventListener('resize', queueRepositionOpenDropdowns); window.addEventListener('scroll', queueRepositionOpenDropdowns, true); function getSelectedTerms() { return Object.keys(selected).map(function(key) { return selected[key]; }).filter(function(value) { return parseInt(value, 10) > 0; }); } function updateAllState() { var hasFilters = getSelectedTerms().length > 0; if (clearButton) { clearButton.classList.toggle('is-active', !hasFilters); } } function setLoadMoreState(hasMore) { if (!loadMoreButton) { return; } loadMoreButton.hidden = !hasMore; loadMoreButton.disabled = false; } function appendCards(html) { var grid = results.querySelector('.airsang-case-center__grid'); if (!grid) { results.insertAdjacentHTML('beforeend', html); return; } var temp = document.createElement('div'); temp.innerHTML = html; var incomingGrid = temp.querySelector('.airsang-case-center__grid'); if (!incomingGrid) { results.insertAdjacentHTML('beforeend', html); return; } Array.prototype.slice.call(incomingGrid.children).forEach(function(card) { grid.appendChild(card); }); } function applyFilters(append) { append = append === true; var settings = results.getAttribute('data-settings') || '{}'; var data = new FormData(); var nextPage = append ? currentPage + 1 : 1; data.append('action', 'airsang_case_center_filter'); data.append('nonce', results.getAttribute('data-nonce') || ''); data.append('settings', settings); data.append('terms', JSON.stringify(getSelectedTerms())); data.append('page', String(nextPage)); results.classList.add('is-loading'); if (loadMoreButton) { loadMoreButton.disabled = true; } fetch(results.getAttribute('data-ajax-url'), { method: 'POST', credentials: 'same-origin', body: data }) .then(function(response) { return response.json(); }) .then(function(payload) { if (payload && payload.success && payload.data && typeof payload.data.html === 'string') { if (append) { appendCards(payload.data.html); } else { results.innerHTML = payload.data.html; } currentPage = parseInt(payload.data.page || nextPage, 10) || nextPage; results.setAttribute('data-current-page', String(currentPage)); results.setAttribute('data-has-more', payload.data.has_more ? 'yes' : 'no'); setLoadMoreState(!!payload.data.has_more); } }) .catch(function() {}) .finally(function() { results.classList.remove('is-loading'); if (loadMoreButton) { loadMoreButton.disabled = false; } }); } root.addEventListener('click', function(event) { var toggle = event.target.closest('[data-dropdown-toggle]'); var item = event.target.closest('[data-filter-term]'); var clear = event.target.closest('[data-clear-filter]'); var more = event.target.closest('[data-load-more]'); if (toggle && root.contains(toggle)) { event.preventDefault(); var dropdown = toggle.closest('.airsang-case-center__dropdown'); if (!dropdown) { return; } var isOpen = dropdown.classList.contains('is-open'); closeDropdowns(dropdown); if (isOpen) { dropdown.classList.remove('is-open'); resetDropdownPosition(dropdown); toggle.setAttribute('aria-expanded', 'false'); } else { dropdown.classList.add('is-open'); positionDropdownMenu(dropdown); toggle.setAttribute('aria-expanded', 'true'); } return; } if (more && root.contains(more)) { event.preventDefault(); applyFilters(true); return; } if (item && root.contains(item)) { var group = item.closest('[data-filter-group]'); var groupKey = group ? group.getAttribute('data-filter-group') : ''; var term = parseInt(item.getAttribute('data-filter-term') || '0', 10); var label = group ? group.querySelector('[data-filter-label]') : null; group.querySelectorAll('[data-filter-term]').forEach(function(other) { other.classList.remove('is-active'); }); item.classList.add('is-active'); if (term > 0) { selected[groupKey] = term; if (label) { label.textContent = item.getAttribute('data-filter-term-name') || item.textContent; } } else { delete selected[groupKey]; if (label) { label.textContent = item.getAttribute('data-filter-term-name') || item.textContent; } } var activeToggle = group.querySelector('[data-dropdown-toggle]'); if (activeToggle) { activeToggle.classList.toggle('is-active', term > 0); activeToggle.setAttribute('aria-expanded', 'false'); } closeDropdowns(); updateAllState(); applyFilters(false); return; } if (clear && root.contains(clear)) { selected = {}; root.querySelectorAll('.airsang-case-center__dropdown').forEach(function(dropdown) { var first = dropdown.querySelector('[data-filter-term="0"]'); var label = dropdown.querySelector('[data-filter-label]'); dropdown.querySelectorAll('[data-filter-term]').forEach(function(other) { other.classList.remove('is-active'); }); if (first) { first.classList.add('is-active'); if (label) { label.textContent = first.getAttribute('data-filter-term-name') || first.textContent; } } var button = dropdown.querySelector('[data-dropdown-toggle]'); if (button) { button.classList.remove('is-active'); } }); closeDropdowns(); updateAllState(); applyFilters(false); } }); document.addEventListener('click', function(event) { if (!root.contains(event.target)) { closeDropdowns(); } }); } function initAllCaseCenters(scope) { (scope || document).querySelectorAll('[data-airsang-case-center]').forEach(initCaseCenter); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { initAllCaseCenters(document); }); } else { initAllCaseCenters(document); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_case_center_post_filter.default', function($scope) { var node = $scope && $scope[0] ? $scope[0] : document; initAllCaseCenters(node); }); } })(); </script> <script> (function () { if (window.__airsangPostShareLoaded) return; window.__airsangPostShareLoaded = true; function copyLink(url) { if (navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(url); return new Promise(function (resolve, reject) { var input = document.createElement('textarea'); input.value = url; input.style.position = 'fixed'; input.style.opacity = '0'; document.body.appendChild(input); input.select(); try { if (document.execCommand('copy')) resolve(); else reject(new Error('copy failed')); } catch (error) { reject(error); } input.remove(); }); } function shareUrl(platform, url, title) { var page = encodeURIComponent(url); var text = encodeURIComponent(title); switch (platform) { case 'weibo': return 'https://service.weibo.com/share/share.php?url=' + page + '&title=' + text; case 'facebook': return 'https://www.facebook.com/sharer/sharer.php?u=' + page; case 'x': return 'https://twitter.com/intent/tweet?url=' + page + '&text=' + text; case 'linkedin': return 'https://www.linkedin.com/sharing/share-offsite/?url=' + page; case 'whatsapp': return 'https://api.whatsapp.com/send?text=' + encodeURIComponent(title + ' ' + url); case 'pinterest': return 'https://pinterest.com/pin/create/button/?url=' + page + '&description=' + text; case 'email': return 'mailto:?subject=' + text + '&body=' + page; default: return ''; } } function init(scope) { var root = scope && scope[0] ? scope[0] : scope; if (!root || !root.querySelectorAll) return; var widgets = root.matches && root.matches('[data-airsang-post-share]') ? [root] : root.querySelectorAll('[data-airsang-post-share]'); Array.prototype.forEach.call(widgets, function (widget) { if (widget.dataset.shareReady === 'yes') return; widget.dataset.shareReady = 'yes'; widget.addEventListener('click', function (event) { var button = event.target.closest('[data-platform]'); if (!button || !widget.contains(button)) return; var platform = button.dataset.platform; var url = widget.dataset.shareUrl || window.location.href.split('#')[0]; var title = widget.dataset.shareTitle || document.title; var status = widget.querySelector('.airsang-post-share__status'); var appNames = { tiktok: 'TikTok', douyin: 'Douyin', xiaohongshu: 'RedNote' }; var requestedApp = appNames[platform]; function report(message) { window.clearTimeout(widget.shareStatusTimer); status.textContent = message; if (message) widget.shareStatusTimer = window.setTimeout(function () { status.textContent = ''; }, 4000); } function copyFor(destination) { copyLink(url).then(function () { report(destination ? '链接已复制,可粘贴到' + destination : '链接已复制'); }).catch(function () { report('复制失败,请手动复制地址栏链接'); }); } if ((platform === 'native' || requestedApp) && navigator.share) { if (requestedApp) report('请在分享面板中选择' + requestedApp); navigator.share({ title: title, url: url }).then(function () { if (requestedApp) report('分享面板已关闭'); }).catch(function (error) { if (error.name === 'AbortError') { report(''); return; } copyLink(url).then(function () { report('无法打开系统分享,链接已复制'); }).catch(function () { report('分享失败,请手动复制地址栏链接'); }); }); return; } if (platform === 'native' || platform === 'copy' || platform === 'wechat' || requestedApp || platform === 'youtube') { var destination = requestedApp || (platform === 'wechat' ? 'WeChat' : platform === 'youtube' ? 'YouTube' : ''); copyFor(destination); return; } var target = shareUrl(platform, url, title); if (!target) return; if (platform === 'email') { window.location.href = target; return; } var popup = window.open(target, '_blank', 'width=720,height=560'); if (popup) popup.opener = null; else report('浏览器拦截了分享窗口'); }); }); } function initPage() { init(document); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initPage); else initPage(); function registerElementor() { if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_post_share.default', init); } } registerElementor(); window.addEventListener('elementor/frontend/init', registerElementor); })(); </script> <script> (function() { if (window.__airsangThreeRowVideoMarqueeReady) { return; } window.__airsangThreeRowVideoMarqueeReady = true; var mobileQuery = window.matchMedia('(max-width: 1024px)'); var activeCard = null; var activeVideo = null; var viewportObserver = null; function configureVideo(video) { video.muted = true; video.defaultMuted = true; video.playsInline = true; video.loop = true; video.controls = false; video.preload = 'auto'; video.disablePictureInPicture = true; video.setAttribute('muted', ''); video.setAttribute('playsinline', ''); video.setAttribute('webkit-playsinline', ''); video.setAttribute('x5-playsinline', ''); video.setAttribute('x5-video-player-fullscreen', 'false'); video.setAttribute('loop', ''); video.setAttribute('disablepictureinpicture', ''); video.setAttribute('disableremoteplayback', ''); video.setAttribute('controlslist', 'nodownload noplaybackrate noremoteplayback nofullscreen'); video.removeAttribute('controls'); } function createVideo(card) { var url = card ? card.getAttribute('data-video-url') : ''; if (!card || !url) { return null; } var existing = card.querySelector('.airsang-three-video-marquee__dynamic-video'); if (existing) { return existing; } var video = document.createElement('video'); var content = card.querySelector('.airsang-three-video-marquee__content'); video.className = 'airsang-three-video-marquee__media airsang-three-video-marquee__dynamic-video'; configureVideo(video); video.src = url; video.addEventListener('playing', function() { card.classList.remove('is-video-loading'); card.classList.add('is-video-playing'); }, { once: true }); video.addEventListener('error', function() { if (activeCard === card) { stopActiveCard(); } }, { once: true }); card.insertBefore(video, content || null); return video; } function releaseVideo(video) { if (!video) { return; } video.pause(); video.removeAttribute('src'); video.load(); video.remove(); } function stopCard(card) { if (!card) { return; } var video = card.querySelector('.airsang-three-video-marquee__dynamic-video'); var row = card.closest('.airsang-three-video-marquee__row'); releaseVideo(video); card.classList.remove('is-video-loading', 'is-video-playing'); if (row) { row.classList.remove('is-interacting'); } if (activeCard === card) { activeCard = null; activeVideo = null; } } function stopActiveCard() { if (activeCard) { stopCard(activeCard); } } function playCard(card) { if (!card || !card.getAttribute('data-video-url')) { return; } if (activeCard && activeCard !== card) { stopActiveCard(); } var video = createVideo(card); var row = card.closest('.airsang-three-video-marquee__row'); if (!video) { return; } activeCard = card; activeVideo = video; card.classList.add('is-video-loading'); if (row) { row.classList.add('is-interacting'); } var promise = video.play(); if (promise && typeof promise.catch === 'function') { promise.catch(function() { if (activeCard === card) { stopActiveCard(); } }); } } function setWidgetVisibility(widget, isVisible) { widget.dataset.airsangInViewport = isVisible ? 'yes' : 'no'; widget.classList.toggle('is-in-view', isVisible && !document.hidden); if (!isVisible && activeCard && widget.contains(activeCard)) { stopActiveCard(); } } function setupWidgets(scope) { var root = scope && scope.nodeType ? scope : document; var widgets = []; if (root.matches && root.matches('.airsang-three-video-marquee')) { widgets.push(root); } if (root.querySelectorAll) { root.querySelectorAll('.airsang-three-video-marquee').forEach(function(widget) { widgets.push(widget); }); } widgets.forEach(function(widget) { if (widget.dataset.airsangViewportReady === 'yes') { return; } widget.dataset.airsangViewportReady = 'yes'; if (viewportObserver) { viewportObserver.observe(widget); } else { setWidgetVisibility(widget, true); } }); } function initWidgets(scope) { if (!viewportObserver && 'IntersectionObserver' in window) { viewportObserver = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { setWidgetVisibility(entry.target, entry.isIntersecting); }); }, { rootMargin: '120px 0px', threshold: 0.01 }); } setupWidgets(scope || document); } document.addEventListener('mouseover', function(event) { var card = event.target.closest('.airsang-three-video-marquee__card'); if (!card || card.contains(event.relatedTarget)) { return; } if (!mobileQuery.matches) { playCard(card); } }, true); document.addEventListener('mouseout', function(event) { var card = event.target.closest('.airsang-three-video-marquee__card'); if (!card || card.contains(event.relatedTarget)) { return; } if (!mobileQuery.matches) { stopCard(card); } }, true); document.addEventListener('click', function(event) { if (!mobileQuery.matches) { return; } var card = event.target.closest('.airsang-three-video-marquee__card'); if (!card || !card.getAttribute('data-video-url')) { return; } if (card === activeCard) { if ('A' === card.tagName && card.getAttribute('href')) { return; } event.preventDefault(); stopCard(card); return; } event.preventDefault(); playCard(card); }, true); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { initWidgets(document); }); } else { initWidgets(document); } if (typeof mobileQuery.addEventListener === 'function') { mobileQuery.addEventListener('change', stopActiveCard); } else if (typeof mobileQuery.addListener === 'function') { mobileQuery.addListener(stopActiveCard); } document.addEventListener('visibilitychange', function() { if (document.hidden) { stopActiveCard(); } document.querySelectorAll('.airsang-three-video-marquee').forEach(function(widget) { widget.classList.toggle( 'is-in-view', !document.hidden && widget.dataset.airsangInViewport === 'yes' ); }); }); window.addEventListener('elementor/frontend/init', function() { if (window.elementorFrontend && elementorFrontend.hooks) { elementorFrontend.hooks.addAction('frontend/element_ready/airsang_three_row_video_marquee.default', function(scope) { initWidgets(scope && scope[0] ? scope[0] : scope); }); } }); })(); </script> <script> (function() { if (window.__airsangPricingComparisonReady) { return; } window.__airsangPricingComparisonReady = true; document.addEventListener('click', function(event) { var desktopToggle = event.target.closest('.airsang-pricing-table__group-toggle'); if (desktopToggle) { event.preventDefault(); var groupRow = desktopToggle.closest('.airsang-pricing-table__group-row'); var table = desktopToggle.closest('.airsang-pricing-table__desktop'); var group = groupRow ? groupRow.getAttribute('data-group') : ''; var collapsed = !groupRow.classList.contains('is-collapsed'); groupRow.classList.toggle('is-collapsed', collapsed); desktopToggle.setAttribute('aria-expanded', collapsed ? 'false' : 'true'); if (table && group) { table.querySelectorAll('.airsang-pricing-table__feature-row[data-group="' + group + '"]').forEach(function(row) { row.classList.toggle('is-hidden', collapsed); }); } return; } var mobileGroup = event.target.closest('.airsang-pricing-mobile-group'); if (mobileGroup) { event.preventDefault(); var card = mobileGroup.closest('.airsang-pricing-mobile-card'); var mobileGroupIndex = mobileGroup.getAttribute('data-group'); var mobileCollapsed = !mobileGroup.classList.contains('is-collapsed'); mobileGroup.classList.toggle('is-collapsed', mobileCollapsed); mobileGroup.setAttribute('aria-expanded', mobileCollapsed ? 'false' : 'true'); if (card && mobileGroupIndex) { card.querySelectorAll('.airsang-pricing-mobile-feature[data-group="' + mobileGroupIndex + '"]').forEach(function(row) { row.classList.toggle('is-hidden', mobileCollapsed); }); } return; } var tab = event.target.closest('.airsang-pricing-mobile-tab'); if (tab) { event.preventDefault(); var widget = tab.closest('.airsang-pricing-table'); var plan = tab.getAttribute('data-plan'); if (!widget || !plan) { return; } widget.querySelectorAll('.airsang-pricing-mobile-tab').forEach(function(item) { var isActive = item === tab; item.classList.toggle('is-active', isActive); item.setAttribute('aria-selected', isActive ? 'true' : 'false'); }); widget.querySelectorAll('.airsang-pricing-mobile-card').forEach(function(cardItem) { cardItem.classList.toggle('is-active', cardItem.getAttribute('data-plan') === plan); }); } }); document.addEventListener('mouseover', function(event) { var cell = event.target.closest('.airsang-pricing-table__desktop [data-plan]'); if (!cell) { return; } var table = cell.closest('.airsang-pricing-table__desktop'); var plan = cell.getAttribute('data-plan'); if (!table || !plan) { return; } table.querySelectorAll('[data-plan]').forEach(function(item) { item.classList.toggle('is-col-hover', item.getAttribute('data-plan') === plan); }); }); document.addEventListener('mouseout', function(event) { var table = event.target.closest('.airsang-pricing-table__desktop'); if (!table || table.contains(event.relatedTarget)) { return; } table.querySelectorAll('.is-col-hover').forEach(function(item) { item.classList.remove('is-col-hover'); }); }); })(); </script> <script> (function() { function activateTab(root, index) { var tabs = Array.prototype.slice.call(root.querySelectorAll('.airsang-overseas-tabs__tab')); var panels = Array.prototype.slice.call(root.querySelectorAll('.airsang-overseas-tabs__panel')); tabs.forEach(function(tab, tabIndex) { var active = tabIndex === index; tab.classList.toggle('is-active', active); tab.setAttribute('aria-selected', active ? 'true' : 'false'); }); panels.forEach(function(panel, panelIndex) { var active = panelIndex === index; panel.classList.toggle('is-active', active); if (active) { panel.removeAttribute('hidden'); } else { panel.setAttribute('hidden', ''); } }); } function initTabs(root) { if (!root || root.dataset.airsangOverseasTabsReady === 'yes') { return; } root.dataset.airsangOverseasTabsReady = 'yes'; root.querySelectorAll('.airsang-overseas-tabs__tab').forEach(function(tab) { tab.addEventListener('click', function() { var index = parseInt(tab.getAttribute('data-index'), 10); activateTab(root, Number.isNaN(index) ? 0 : index); }); }); } function initAll() { document.querySelectorAll('[data-airsang-overseas-tabs]').forEach(initTabs); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAll); } else { initAll(); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_overseas_case_tabs_showcase.default', initAll); } window.addEventListener('elementor/frontend/init', function() { if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_overseas_case_tabs_showcase.default', initAll); } }); })(); </script> <script> (function() { function initDesignCards(root) { if (!root || root.dataset.airsangDesignCardsReady === 'yes') { return; } root.dataset.airsangDesignCardsReady = 'yes'; if (!root.classList.contains('is-entrance-enabled')) { return; } if (!('IntersectionObserver' in window)) { root.classList.add('is-in-view'); return; } var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { root.classList.add('is-in-view'); observer.unobserve(root); } }); }, { threshold: 0.18, rootMargin: '0px 0px -8% 0px' }); observer.observe(root); } function initAll() { document.querySelectorAll('[data-airsang-design-service-cards]').forEach(initDesignCards); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAll); } else { initAll(); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_design_service_cards.default', initAll); } window.addEventListener('elementor/frontend/init', function() { if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_design_service_cards.default', initAll); } }); })(); </script> <script> (function() { function initCommerceFeatureSplit(root) { if (!root || root.dataset.airsangCommerceFeatureReady === 'yes') { return; } root.dataset.airsangCommerceFeatureReady = 'yes'; if (!root.classList.contains('is-entrance-enabled') && !root.classList.contains('is-image-float-enabled')) { return; } if (!('IntersectionObserver' in window)) { root.classList.add('is-in-view'); return; } var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { root.classList.add('is-in-view'); observer.unobserve(root); } }); }, { threshold: 0.16, rootMargin: '0px 0px -8% 0px' }); observer.observe(root); } function initAll() { document.querySelectorAll('[data-airsang-commerce-feature-split]').forEach(initCommerceFeatureSplit); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAll); } else { initAll(); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_commerce_feature_split.default', initAll); } window.addEventListener('elementor/frontend/init', function() { if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_commerce_feature_split.default', initAll); } }); })(); </script> <script> (function() { function initBrandProcessCards(root) { if (!root || root.dataset.airsangBrandProcessReady === 'yes') { return; } root.dataset.airsangBrandProcessReady = 'yes'; if (!root.classList.contains('is-entrance-enabled')) { return; } if (!('IntersectionObserver' in window)) { root.classList.add('is-in-view'); return; } var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { root.classList.add('is-in-view'); observer.unobserve(root); } }); }, { threshold: 0.16, rootMargin: '0px 0px -8% 0px' }); observer.observe(root); } function initAll() { document.querySelectorAll('[data-airsang-brand-process-cards]').forEach(initBrandProcessCards); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAll); } else { initAll(); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_brand_process_cards.default', initAll); } window.addEventListener('elementor/frontend/init', function() { if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_brand_process_cards.default', initAll); } }); })(); </script> <script> (function() { function initShoplineHero(root) { if (!root || root.dataset.airsangShoplineHeroReady === 'yes') { return; } root.dataset.airsangShoplineHeroReady = 'yes'; if (!root.classList.contains('is-entrance-enabled') && !root.classList.contains('is-float-enabled')) { return; } if (!('IntersectionObserver' in window)) { root.classList.add('is-in-view'); return; } var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { root.classList.add('is-in-view'); observer.unobserve(root); } }); }, { threshold: 0.16, rootMargin: '0px 0px -8% 0px' }); observer.observe(root); } function initAll() { document.querySelectorAll('[data-airsang-shopline-hero]').forEach(initShoplineHero); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAll); } else { initAll(); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_shopline_design_hero.default', initAll); } window.addEventListener('elementor/frontend/init', function() { if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_shopline_design_hero.default', initAll); } }); })(); </script> <script> (function() { function clamp(value, min, max) { return Math.max(min, Math.min(max, value)); } function isMobile() { return window.matchMedia('(max-width: 767px)').matches; } function isStackedLayout(root) { return window.matchMedia('(max-width: 1180px)').matches && !(isMobile() && root.classList.contains('is-mobile-horizontal')); } function isNativeTrack(root) { return (!isStackedLayout(root) && root.classList.contains('is-native-horizontal')) || (isMobile() && root.classList.contains('is-mobile-horizontal')); } function initComparison(compare) { if (!compare || compare.dataset.airsangCompareReady === 'yes') { return; } compare.dataset.airsangCompareReady = 'yes'; var range = compare.querySelector('.airsang-horizontal-scroll__compare-range'); var dragging = false; function setValue(value) { var cleanValue = clamp(parseFloat(value) || 50, 0, 100); compare.style.setProperty('--airsang-compare-pos', cleanValue + '%'); if (range) { range.value = String(cleanValue); } } function setFromEvent(event) { var rect = compare.getBoundingClientRect(); var pointX = event.clientX; if (event.touches && event.touches.length) { pointX = event.touches[0].clientX; } setValue(((pointX - rect.left) / Math.max(1, rect.width)) * 100); } if (range) { range.addEventListener('input', function() { setValue(range.value); }); } compare.addEventListener('pointerdown', function(event) { dragging = true; setFromEvent(event); if (compare.setPointerCapture && event.pointerId) { compare.setPointerCapture(event.pointerId); } }); compare.addEventListener('pointermove', function(event) { if (!dragging) { return; } setFromEvent(event); }); compare.addEventListener('pointerup', function() { dragging = false; }); compare.addEventListener('pointercancel', function() { dragging = false; }); setValue(range ? range.value : 50); } function initHoverVideo(card) { if (!card || card.dataset.airsangVideoReady === 'yes') { return; } var video = card.querySelector('video[data-src]'); var panel = card.closest('[data-panel]'); if (!video || !panel) { return; } card.dataset.airsangVideoReady = 'yes'; video.muted = true; video.loop = true; video.playsInline = true; video.controls = false; function stop() { video.pause(); card.classList.remove('is-playing'); card.setAttribute('aria-label', 'play video'); } function start() { document.querySelectorAll('[data-airsang-hover-video]').forEach(function(other) { if (other !== card && other.__airsangStopVideo) { other.__airsangStopVideo(); } }); if (!video.getAttribute('src')) { video.src = video.dataset.src; } var playback = video.play(); if (playback && typeof playback.catch === 'function') { playback.catch(stop); } } card.__airsangStopVideo = stop; video.addEventListener('playing', function() { card.classList.add('is-playing'); card.setAttribute('aria-label', 'Pause video'); }); panel.addEventListener('pointerenter', function(event) { if (event.pointerType === 'mouse') { start(); } }); panel.addEventListener('pointerleave', function(event) { if (event.pointerType === 'mouse') { stop(); } }); card.addEventListener('click', function(event) { if (event.pointerType === 'mouse' && window.matchMedia('(hover: hover)').matches) { return; } if (video.paused) { start(); } else { stop(); } }); card.addEventListener('keydown', function(event) { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); if (video.paused) { start(); } else { stop(); } } }); document.addEventListener('visibilitychange', function() { if (document.hidden) { stop(); } }); if ('IntersectionObserver' in window) { var observer = new IntersectionObserver(function(entries) { if (!entries[0].isIntersecting) { stop(); } }, { threshold: 0.05 }); observer.observe(panel); } } function initHorizontalScroll(root) { if (!root || root.dataset.airsangHorizontalReady === 'yes') { if (root && root.__airsangHorizontalUpdate) { root.__airsangHorizontalUpdate(); } return; } root.dataset.airsangHorizontalReady = 'yes'; var pin = root.querySelector('.airsang-horizontal-scroll__pin'); var track = root.querySelector('[data-track]'); var panels = Array.prototype.slice.call(root.querySelectorAll('[data-panel]')); var currentTitle = root.querySelector('[data-current-title]'); var currentIndex = root.querySelector('[data-current-index]'); var progressFill = root.querySelector('[data-progress-fill]'); var progressButton = root.querySelector('[data-progress-button]'); var frame = null; if (!pin || !track || !panels.length) { return; } function setActive(index, progress) { var cleanIndex = clamp(index, 0, panels.length - 1); var panel = panels[cleanIndex] || panels[0]; if (currentTitle && panel) { currentTitle.textContent = panel.getAttribute('data-nav-title') || ''; } if (currentIndex) { currentIndex.textContent = String(cleanIndex + 1); } if (progressFill) { var visualProgress = panels.length > 0 ? ((progress * Math.max(0, panels.length - 1)) + 1) / panels.length : 0; root.style.setProperty('--airsang-hs-progress', String(clamp(visualProgress, panels.length > 0 ? 1 / panels.length : 0, 1))); } } function updatePassiveMode() { track.style.transform = ''; if (isNativeTrack(root)) { var maxScroll = Math.max(1, track.scrollWidth - track.clientWidth); var horizontalProgress = clamp(track.scrollLeft / maxScroll, 0, 1); var horizontalIndex = clamp(Math.round(horizontalProgress * (panels.length - 1)), 0, panels.length - 1); setActive(horizontalIndex, horizontalProgress); return; } var stickyTopValue = parseFloat(getComputedStyle(root).getPropertyValue('--airsang-hs-sticky-top')) || 0; var guide = stickyTopValue + ((window.innerHeight - stickyTopValue) * 0.45); var activeIndex = 0; var bestDistance = Infinity; panels.forEach(function(panel, index) { var panelRect = panel.getBoundingClientRect(); if (panelRect.bottom < stickyTopValue || panelRect.top > window.innerHeight) { return; } var panelCenter = panelRect.top + (panelRect.height * 0.38); var distance = Math.abs(panelCenter - guide); if (distance < bestDistance) { bestDistance = distance; activeIndex = index; } }); setActive(activeIndex, panels.length > 1 ? activeIndex / (panels.length - 1) : 0); } function update() { frame = null; if (isStackedLayout(root) || isNativeTrack(root)) { updatePassiveMode(); return; } var rect = root.getBoundingClientRect(); var scrollTop = window.pageYOffset || document.documentElement.scrollTop; var rootTop = rect.top + scrollTop; var stickyTopValue = parseFloat(getComputedStyle(root).getPropertyValue('--airsang-hs-sticky-top')) || 0; var start = rootTop - stickyTopValue; var end = rootTop + root.offsetHeight - window.innerHeight; var distance = Math.max(1, end - start); var progress = clamp((scrollTop - start) / distance, 0, 1); var maxTranslate = Math.max(0, track.scrollWidth - pin.clientWidth); var translate = -maxTranslate * progress; var activeIndex = clamp(Math.round(progress * (panels.length - 1)), 0, panels.length - 1); track.style.transform = 'translate3d(' + translate + 'px, 0, 0)'; setActive(activeIndex, progress); } function requestUpdate() { if (frame) { return; } frame = window.requestAnimationFrame(update); } if (progressButton && root.classList.contains('is-progress-clickable')) { progressButton.addEventListener('click', function() { if (isNativeTrack(root)) { return; } if (isStackedLayout(root)) { var stackedCurrent = currentIndex ? (parseInt(currentIndex.textContent, 10) || 1) - 1 : 0; var stackedNext = clamp(stackedCurrent + 1, 0, panels.length - 1); panels[stackedNext].scrollIntoView({ block: 'start', behavior: 'smooth' }); return; } var scrollTop = window.pageYOffset || document.documentElement.scrollTop; var rect = root.getBoundingClientRect(); var rootTop = rect.top + scrollTop; var stickyTopValue = parseFloat(getComputedStyle(root).getPropertyValue('--airsang-hs-sticky-top')) || 0; var start = rootTop - stickyTopValue; var end = rootTop + root.offsetHeight - window.innerHeight; var currentProgress = clamp((scrollTop - start) / Math.max(1, end - start), 0, 1); var nextIndex = clamp(Math.floor(currentProgress * panels.length) + 1, 0, panels.length - 1); var target = start + ((end - start) * (nextIndex / Math.max(1, panels.length - 1))); window.scrollTo({ top: target, behavior: 'smooth' }); }); } window.addEventListener('scroll', requestUpdate, { passive: true }); window.addEventListener('resize', requestUpdate); track.addEventListener('scroll', requestUpdate, { passive: true }); root.__airsangHorizontalUpdate = update; update(); } function initAll() { document.querySelectorAll('[data-airsang-horizontal-scroll]').forEach(initHorizontalScroll); document.querySelectorAll('[data-airsang-compare]').forEach(initComparison); document.querySelectorAll('[data-airsang-hover-video]').forEach(initHoverVideo); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAll); } else { initAll(); } if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_scroll_horizontal_capabilities.default', initAll); } window.addEventListener('elementor/frontend/init', function() { if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction('frontend/element_ready/airsang_scroll_horizontal_capabilities.default', initAll); } }); })(); </script> <script> (function() { if (window.__airsangGlobalVisualReady) { return; } window.__airsangGlobalVisualReady = true; function initWidget(root) { var widgets = []; if (root && root.matches && root.matches('[data-airsang-global-visual]')) { widgets.push(root); } if (root && root.querySelectorAll) { root.querySelectorAll('[data-airsang-global-visual]').forEach(function(widget) { widgets.push(widget); }); } widgets.forEach(function(widget) { if (widget.dataset.airsangGlobalVisualReady === 'yes') { return; } widget.dataset.airsangGlobalVisualReady = 'yes'; if (!('IntersectionObserver' in window)) { widget.classList.add('is-in-view'); return; } var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add('is-in-view'); observer.unobserve(entry.target); } }); }, { threshold: 0.14 }); observer.observe(widget); }); } function initAll() { initWidget(document); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initAll); } else { initAll(); } window.addEventListener('elementor/frontend/init', function() { if (window.elementorFrontend && window.elementorFrontend.hooks) { window.elementorFrontend.hooks.addAction( 'frontend/element_ready/airsang_global_ecommerce_visual_feature.default', function(scope) { initWidget(scope && scope[0] ? scope[0] : scope); } ); } }); })(); </script> </body> </html>