Update: Abschluss 29.07.2025
This commit is contained in:
parent
0db3bb9207
commit
4f1e5eddac
13 changed files with 698 additions and 760 deletions
|
|
@ -1,180 +1,117 @@
|
|||
{{ define "main" }}
|
||||
<header id="mainHeader">
|
||||
|
||||
|
||||
{{ with .Params.banner }}
|
||||
{{ if .enable }}
|
||||
<section
|
||||
class="slider {{ if .bg_overlay }}overly{{ end }} gif-background"
|
||||
style="height: 100vh; display: flex; align-items: center; justify-content: center; position: relative;"
|
||||
>
|
||||
<div class="my-container" style="position: relative; z-index: 2;">
|
||||
<!-- Logo-Container mit 2 Frames (40% / 60%), 10% Rand links & rechts -->
|
||||
<div class="logo-container">
|
||||
<!-- Frame 1 -->
|
||||
<div class="frame1">
|
||||
<img
|
||||
src="{{ .logo_image1 | relURL }}"
|
||||
alt="Logo Frame 1"
|
||||
class="banner-logo"
|
||||
>
|
||||
</div>
|
||||
<!-- Frame 2 -->
|
||||
<div class="frame2">
|
||||
<img
|
||||
src="{{ .logo_image2 | relURL }}"
|
||||
alt="Logo Frame 2"
|
||||
class="banner-logo"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
{{ if .enable }}
|
||||
<!-- HERO / SLIDER -->
|
||||
<section class="slider {{ if .bg_overlay }}overly{{ end }} gif-background"
|
||||
style="height: 100vh; display: flex; align-items: center; justify-content: center; position: relative;">
|
||||
<div class="my-container" style="position: relative; z-index: 2;">
|
||||
|
||||
<!-- *Logo-Zeile mit zwei Frames* -->
|
||||
<div class="logo-container">
|
||||
<div class="frame1">
|
||||
<img src="{{ .logo_image1 | relURL }}" alt="Logo Frame 1" class="banner-logo">
|
||||
</div>
|
||||
<div class="frame2">
|
||||
<img src="{{ .logo_image2 | relURL }}" alt="Logo Frame 2" class="banner-logo">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- *Haupttitel + Button* -->
|
||||
<div class="block" style="display: flex; flex-direction: column; justify-content: flex-end; min-height: 10vh; padding: 1rem; box-sizing: border-box;">
|
||||
{{ with .title }}
|
||||
<h1 class="title-custom title-custom-margin fade-in-title">{{ . | markdownify }}</h1>
|
||||
{{ end }}
|
||||
|
||||
<!-- Titel / Content / Button -->
|
||||
<div class="block" style="display: flex; flex-direction: column; justify-content: flex-end; min-height: 10vh; padding: 1rem; box-sizing: border-box; overflow-wrap: break-word;">
|
||||
{{ with .title }}
|
||||
<h1 class="title-custom title-custom-margin fade-in-title">
|
||||
{{ . | markdownify }}
|
||||
</h1>
|
||||
{{ end }}
|
||||
|
||||
{{ with .button }}
|
||||
{{ if .enable }}
|
||||
<div
|
||||
class='scrolldown'
|
||||
onclick="document.getElementById('service').scrollIntoView({ behavior: 'smooth' });"
|
||||
style="--color: rgb(0, 0, 0); cursor: pointer;"
|
||||
>
|
||||
<div class="chevrons">
|
||||
<div class='chevrondown'></div>
|
||||
<div class='chevrondown'></div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ with .button }}
|
||||
{{ if .enable }}
|
||||
<div class="scrolldown" onclick="document.getElementById('service').scrollIntoView({ behavior: 'smooth' });"
|
||||
style="--color: rgb(0, 0, 0); cursor: pointer;">
|
||||
<div class="chevrons">
|
||||
<div class='chevrondown'></div>
|
||||
<div class='chevrondown'></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Scroll/Hide Header -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var scrolldown = document.querySelector('.scrolldown');
|
||||
scrolldown.addEventListener('click', function() {
|
||||
scrolldown?.addEventListener('click', function () {
|
||||
const serviceSection = document.getElementById('service');
|
||||
const offset = 100; // Der Offset in Pixeln
|
||||
|
||||
// Berechne die Position, zu der gescrollt werden soll
|
||||
const offset = 100;
|
||||
const targetPosition = serviceSection.getBoundingClientRect().top + window.pageYOffset - offset;
|
||||
|
||||
window.scrollTo({
|
||||
top: targetPosition,
|
||||
behavior: 'smooth' // Sanftes Scrollen
|
||||
});
|
||||
window.scrollTo({ top: targetPosition, behavior: 'smooth' });
|
||||
});
|
||||
|
||||
window.addEventListener("scroll", function() {
|
||||
window.addEventListener("scroll", function () {
|
||||
if (window.scrollY > 100) {
|
||||
scrolldown.classList.add('hide');
|
||||
scrolldown?.classList.add('hide');
|
||||
} else {
|
||||
scrolldown.classList.remove('hide');
|
||||
scrolldown?.classList.remove('hide');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var header = document.getElementById('mainHeader');
|
||||
var lastScrollPosition = window.scrollY;
|
||||
|
||||
window.addEventListener('scroll', function() {
|
||||
window.addEventListener('scroll', function () {
|
||||
var currentScrollPosition = window.scrollY;
|
||||
|
||||
// Wenn der Benutzer nach unten scrollt, verstecke den Header
|
||||
if (currentScrollPosition > lastScrollPosition) {
|
||||
header.style.top = '-100vh'; // Passe diesen Wert an die Höhe deines Headers an
|
||||
}
|
||||
// Wenn der Benutzer nach oben scrollt, zeige den Header wieder an
|
||||
else {
|
||||
header.style.top = '0';
|
||||
}
|
||||
|
||||
// Wenn der Benutzer ganz nach oben scrollt, zeige den Header an
|
||||
if (currentScrollPosition === 0) {
|
||||
header.style.top = '0';
|
||||
}
|
||||
|
||||
header.style.top = (currentScrollPosition > lastScrollPosition) ? '-100vh' : '0';
|
||||
if (currentScrollPosition === 0) header.style.top = '0';
|
||||
lastScrollPosition = currentScrollPosition;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<div style="height: 200px;"></div>
|
||||
|
||||
<!-- whyamperion -->
|
||||
{{ if .Params.whyamperion.enable }}
|
||||
{{ partial "whyamperion.html" . }}
|
||||
{{ end }}
|
||||
<!-- /whyamperion -->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- services -->
|
||||
{{ with site.GetPage "/service" }}
|
||||
<!-- WHY AMPERION (Kompakte Version) -->
|
||||
{{ with site.GetPage "/whyamperion" }}
|
||||
{{ with .Params.service }}
|
||||
<section id="service" class="service">
|
||||
<!-- container-fluid + my-container => um beides kombinieren zu können -->
|
||||
<div class="container-fluid my-container">
|
||||
<!-- Block mit Titel und Beschreibung -->
|
||||
<div class="services-title">
|
||||
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
|
||||
<section class="whyamperion section">
|
||||
<div class="container my-container">
|
||||
<div class="row">
|
||||
<div class="section-title text-center">
|
||||
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
|
||||
{{ with .description }}<h2><em>{{ . | markdownify }}</em></h2>{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="services-description">
|
||||
{{ with .description }}<h3>{{ . | markdownify }}</h3>{{ end }}
|
||||
</div>
|
||||
<!-- CSS-Grid/Flexbox-Bereich mit den Bildern -->
|
||||
<div class="service-grid">
|
||||
{{ range first 3 .service_item }} <!-- Hier nur die ersten 3 Elemente nehmen -->
|
||||
<div class="service-item-fixed">
|
||||
<div class="zoom-wrap">
|
||||
<a href="{{ .link | relURL }}">
|
||||
<img src="{{ .picture | relURL }}" alt="{{ .name }}">
|
||||
<div class="overlay-text">
|
||||
{{ .name }}
|
||||
</div>
|
||||
<div class="overlay"></div>
|
||||
</a>
|
||||
<div class="row">
|
||||
{{ range .service_item }}
|
||||
<div class="col-sm-6 col-md-3">
|
||||
<div class="service-item text-center">
|
||||
<i class="{{ .icon }}" aria-hidden="true" style="font-size: 2rem; margin-bottom: 0.5rem;"></i>
|
||||
<h3>{{ .name | markdownify }}</h3>
|
||||
<p>{{ .content | markdownify }}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div><!-- /service-grid -->
|
||||
</div><!-- /container-fluid.my-container -->
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<!-- /services -->
|
||||
|
||||
<!-- focustopics -->
|
||||
{{ with site.GetPage "/focustopic" }} <!-- Hier den Pfad zur service2.md anpassen -->
|
||||
<!-- SERVICES -->
|
||||
{{ with site.GetPage "/service" }}
|
||||
{{ with .Params.service }}
|
||||
<section id="service" class="service">
|
||||
<div class="container-fluid my-container">
|
||||
<div class="services-title">
|
||||
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
|
||||
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
|
||||
</div>
|
||||
<div class="services-description">
|
||||
{{ with .description }}<h3>{{ . | markdownify }}</h3>{{ end }}
|
||||
{{ with .description }}<h2><em>{{ . | markdownify }}</em></h2>{{ end }}
|
||||
</div>
|
||||
<div class="service-grid">
|
||||
{{ range first 3 .service_item }}
|
||||
|
|
@ -182,9 +119,7 @@
|
|||
<div class="zoom-wrap">
|
||||
<a href="{{ .link | relURL }}">
|
||||
<img src="{{ .picture | relURL }}" alt="{{ .name }}">
|
||||
<div class="overlay-text">
|
||||
{{ .name }}
|
||||
</div>
|
||||
<div class="overlay-text">{{ .name }}</div>
|
||||
<div class="overlay"></div>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -195,41 +130,104 @@
|
|||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<!-- /focustopics -->
|
||||
|
||||
<div style="height: 100px;"></div>
|
||||
|
||||
<!-- why amperion -->
|
||||
{{ with site.GetPage "/why-amperion" }}
|
||||
<section class="services-section">
|
||||
<h2 class="services-title">{{ .Params.service.title | default "OUR SERVICES" }}</h2>
|
||||
<h3 class="services-description">{{ .Params.service.description | default "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts." | markdownify }}</h3>
|
||||
<div class="services-grid">
|
||||
{{ range first 6 .Params.featured_service.service_item }}
|
||||
<div class="service-card">
|
||||
<img src="{{ .image | relURL }}" alt="{{ .name }}" class="service-icon">
|
||||
<h3 class="service-card-title">{{ .name }}</h3>
|
||||
<p class="service-card-description"><strong>{{ .content1 | markdownify }}</strong> {{ .content | markdownify }}</p>
|
||||
<!-- FOCUSTOPICS -->
|
||||
{{ with site.GetPage "/focustopic" }}
|
||||
{{ with .Params.service }}
|
||||
<section id="focustopic" class="service">
|
||||
<div class="container-fluid my-container">
|
||||
<div class="services-title">
|
||||
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
|
||||
</div>
|
||||
<div class="services-description">
|
||||
{{ with .description }}<h2><em>{{ . | markdownify }}</em></h2>{{ end }}
|
||||
</div>
|
||||
<div class="service-grid">
|
||||
{{ range first 3 .service_item }}
|
||||
<div class="service-item-fixed">
|
||||
<div class="zoom-wrap">
|
||||
<a href="{{ .link | relURL }}">
|
||||
<img src="{{ .picture | relURL }}" alt="{{ .name }}">
|
||||
<div class="overlay-text">{{ .name }}</div>
|
||||
<div class="overlay"></div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
<!-- /why amperion -->
|
||||
|
||||
<div style="height: 100px;"></div>
|
||||
|
||||
|
||||
|
||||
{{ if .Params.contact.enable }}
|
||||
{{ partial "cta.html" . }}
|
||||
{{ end }}
|
||||
|
||||
<!-- WHY AMPERION – kompakt & detailliert (Hardcoded Version) -->
|
||||
<section class="whyamperion section" style="background-color:#f3f3f3">
|
||||
<div class="container my-container">
|
||||
|
||||
<!-- Titelblock – eigener Wrapper statt .section-title -->
|
||||
<div class="row">
|
||||
<div class="why-title text-center">
|
||||
<h1>Darum AMPERION</h1>
|
||||
<h2 class="why-sub"><em>Kompetenz, auf die Sie bauen können – von der Idee bis zur Inbetriebnahme.</em></h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Karten -->
|
||||
<div class="why-grid mt-5">
|
||||
<article class="service-card text-center">
|
||||
<img src="icons/file-badge.svg" alt="Technische Planungskompetenz Icon" class="service-icon mb-3">
|
||||
<h2 class="service-card-title">Technische Planungskompetenz</h2>
|
||||
<p class="service-card-description">
|
||||
<strong>Langjährige Erfahrung mit komplexer Energieplanung –</strong> normgerecht, effizient & zukunftssicher.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article class="service-card text-center">
|
||||
<img src="icons/plug-zap.svg" alt="Intelligente Energiesysteme Icon" class="service-icon mb-3">
|
||||
<h2 class="service-card-title">Intelligente Energiesysteme</h2>
|
||||
<p class="service-card-description">
|
||||
<strong>Von PV bis Speicher und Lastmanagement –</strong> für maximale Eigenversorgung und Netzverträglichkeit.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article class="service-card text-center">
|
||||
<img src="icons/headset.svg" alt="Persönliche Betreuung Icon" class="service-icon mb-3">
|
||||
<h2 class="service-card-title">Persönliche Betreuung</h2>
|
||||
<p class="service-card-description">
|
||||
<strong>Kurze Wege, schnelle Antworten –</strong> direkte Ansprechpartner, auch nach Projektabschluss.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article class="service-card text-center">
|
||||
<img src="icons/hard-hat.svg" alt="Reibungslose Projektabwicklung Icon" class="service-icon mb-3">
|
||||
<h2 class="service-card-title">Reibungslose Projektabwicklung</h2>
|
||||
<p class="service-card-description">
|
||||
<strong>Wir übernehmen die technische Koordination –</strong> von Einreichung bis Ausschreibung.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article class="service-card text-center">
|
||||
<img src="icons/network.svg" alt="Vernetzte Energiezukunft Icon" class="service-icon mb-3">
|
||||
<h2 class="service-card-title">Vernetzte Energiezukunft</h2>
|
||||
<p class="service-card-description">
|
||||
<strong>Wir denken Energie ganzheitlich –</strong> modular, digital und wachstumsfähig geplant.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article class="service-card text-center">
|
||||
<img src="icons/circuit-board.svg" alt="Präzise Systemplanung Icon" class="service-icon mb-3">
|
||||
<h2 class="service-card-title">Präzise Systemplanung</h2>
|
||||
<p class="service-card-description">
|
||||
<strong>Alle Komponenten exakt abgestimmt –</strong> wirtschaftlich und regelkonform.
|
||||
</p>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!-- about -->
|
||||
<!-- ABOUT (unverändert) -->
|
||||
{{ with .Params.about }}
|
||||
{{ if .enable }}
|
||||
<section id="about" class="about section">
|
||||
|
|
@ -237,21 +235,20 @@
|
|||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
<div class="services-title">
|
||||
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
|
||||
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
|
||||
</div>
|
||||
<div class="services-description">
|
||||
{{ with .description }}<h3>{{ . | markdownify }}</h3>{{ end }}
|
||||
{{ with .description }}<h2><em>{{ . | markdownify }}</em></h2>{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-9 col-sm-12">
|
||||
<div class="text-left">
|
||||
{{ with .content }}{{ . | markdownify }}{{ end }}</div>
|
||||
<div class="hover-link">
|
||||
{{ with .link_text }}
|
||||
<a href="{{ "/about/" | relURL }}">{{ . }}</a>
|
||||
{{ end }}
|
||||
{{ with .content }}{{ . | markdownify }}{{ end }}
|
||||
</div>
|
||||
<div class="hover-link">
|
||||
{{ with .link_text }}<a href="{{ "/about/" | relURL }}">{{ . }}</a>{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 col-sm-12">
|
||||
|
|
@ -264,17 +261,13 @@
|
|||
</section>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<!-- /about -->
|
||||
|
||||
|
||||
<div style="height: 100px;"></div>
|
||||
<!-- call to action -->
|
||||
<!-- CALL TO ACTION -->
|
||||
{{ if .Params.cta.enable }}
|
||||
{{ partial "cta.html" . }}
|
||||
{{ end }}
|
||||
<!-- /call to action -->
|
||||
<div style="height: 100px;"></div>
|
||||
<!-- facts -->
|
||||
|
||||
<!-- FACTS -->
|
||||
{{ with .Params.facts }}
|
||||
{{ if .enable }}
|
||||
<section class="facts">
|
||||
|
|
@ -293,59 +286,4 @@
|
|||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<style>
|
||||
.testimonial-item .images-container {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 10px; /* Abstand zwischen den Bildern */
|
||||
}
|
||||
|
||||
.testimonial-item .testimonial-image {
|
||||
width: 10px; /* Anpassen der Breite nach Bedarf */
|
||||
height: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<div style="height: 100px;"></div>
|
||||
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var scrollDownButton = document.querySelector('.scroll-down-button');
|
||||
scrollDownButton.addEventListener('click', function() {
|
||||
document.querySelector('#about').scrollIntoView({
|
||||
behavior: 'smooth'
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var scrolled = false;
|
||||
var initialScrollListener = function() {
|
||||
if (!scrolled) {
|
||||
window.removeEventListener('scroll', initialScrollListener);
|
||||
document.getElementById('welcome').scrollIntoView({ behavior: 'smooth' });
|
||||
scrolled = true;
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener('scroll', initialScrollListener);
|
||||
});
|
||||
|
||||
document.addEventListener("scroll", function() {
|
||||
var scrolldown = document.querySelector('.scrolldown');
|
||||
if (window.scrollY > 100) { // Adjust this value based on when you want to hide the icon
|
||||
scrolldown.classList.add('hide');
|
||||
} else {
|
||||
scrolldown.classList.remove('hide');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
{{ end }}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue