1
0

new ordner

This commit is contained in:
Creat0r
2025-11-01 16:20:04 +01:00
parent ee625615ff
commit 54a64c076b
11 changed files with 237 additions and 523 deletions

View File

@ -36,6 +36,12 @@
color: #333;
}
.cl-checkbox input[type="checkbox"]:checked + span {
color: #999; /* leicht grau */
text-decoration: line-through;
transition: color 0.3s, text-decoration 0.3s; /* sanfter Übergang */
}
.cl-checkbox {
display: flex;
align-items: center;
@ -146,7 +152,7 @@
<br>
<br>
<div class="card">
<img src="/johannesbeeressig.png" alt="Johannesbeeressig">
<img src="/Johannesbeeressig/johannesbeeressig.png" alt="Johannesbeeressig">
<h2>Zutaten für 1 Flasche à 500 ml:</h2>
<ul>

View File

@ -203,13 +203,13 @@
</a>
</div>
<nav>
<a href="index.html">HOME</a>
<a href="recipes.html">RECIPES</a>
<a href="/index.html">HOME</a>
<a href="/recipes">RECIPES</a>
</nav>
<h1>so.mach.ich.das</h1>
<nav>
<a href="/contact.html">CONTACT</a>
<a href="bio.html">BIO</a>
<a href="/contact">CONTACT</a>
<a href="/bio">BIO</a>
</nav>
</header>
<br>

View File

@ -200,13 +200,13 @@
</a>
</div>
<nav>
<a href="index.html">HOME</a>
<a href="recipes.html">RECIPES</a>
<a href="/index.html">HOME</a>
<a href="/recipes/">RECIPES</a>
</nav>
<h1>so.mach.ich.das</h1>
<nav>
<a href="/contact.html">CONTACT</a>
<a href="bio.html">BIO</a>
<a href="/contact/">CONTACT</a>
<a href="/bio/">BIO</a>
</nav>
</header>
<br>

View File

@ -46,6 +46,12 @@
margin-right: 10px;
}
.cl-checkbox input[type="checkbox"]:checked + span {
color: #999; /* leicht grau */
text-decoration: line-through;
transition: color 0.3s, text-decoration 0.3s; /* sanfter Übergang */
}
.card {
width: 100%;
max-width: 500px;
@ -140,6 +146,7 @@
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
@ -246,7 +253,7 @@
}
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const subject = encodeURIComponent('bread');
const body = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/fluffigkrossejoghurtbroteohnegehzeit/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Rezept-Seite</title>
<title>Rezept-Seite mit Video/Bild Viewer</title>
<style>
body {
font-family: Arial, sans-serif;
@ -25,7 +25,7 @@
text-align: center;
}
img {
img, video {
width: 100%;
height: auto;
border-radius: 8px;
@ -60,6 +60,15 @@
padding-left: 20px;
}
.cl-checkbox input[type="checkbox"]:checked + span {
color: #999; /* leicht grau */
text-decoration: line-through;
transition: color 0.3s, text-decoration 0.3s; /* sanfter Übergang */
}
footer {
text-align: center;
padding: 10px;
@ -75,6 +84,29 @@
width: 100%;
}
}
.viewer-controls {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 10px;
}
.viewer-button {
padding: 0.5em 1em;
font-size: 1em;
border: none;
background-color: #212121;
color: white;
border-radius: 5px;
cursor: pointer;
transition: 0.3s;
}
.viewer-button:hover {
background-color: #333;
}
.button {
cursor: pointer;
padding: 1em;
@ -91,17 +123,17 @@
box-shadow: 0 0 1em 1em rgba(0, 0, 0, 0.1);
transition: all 0.3s ease-in-out;
position: relative;
}
.button:hover {
}
.button:hover {
transform: scale(1.1);
box-shadow: 0 0 1em 0.45em rgba(0, 0, 0, 0.1);
background: linear-gradient(45deg, #212121, #252525);
background: radial-gradient(circle at bottom, rgba(50, 100, 180, 0.5) 10%, #212121 70%);
outline: 0;
}
.modal {
}
.modal {
display: none;
position: fixed;
z-index: 1000;
@ -111,9 +143,9 @@
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.5);
}
.modal-content {
}
.modal-content {
background-color: #fefefe;
margin: 15% auto;
padding: 20px;
@ -122,34 +154,45 @@
max-width: 400px;
text-align: center;
border-radius: 10px;
}
}
.social-icons {
.social-icons {
display: flex;
justify-content: center;
gap: 20px;
margin-top: 20px;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img {
width: 60px;
height: 60px;
transition: transform 0.2s;
}
.social-icons a img:hover {
transform: scale(1.1);
}
.social-icons a img:hover {
transform: scale(1.1);
}
</style>
</head>
<body>
<br>
<div class="card">
<video width="300" height="400" controls>
<source src="YouCut_20250804_125731298.mp4" type="video/mp4">
Dein Browser unterstützt das Videoformat nicht.
</video>
<br><br>
<!-- Medien-Viewer (Bild/Video Wechsel) -->
<div class="card">
<div id="viewer-container">
<img id="media-display" src="/fluffigkrossejoghurtbroteohnegehzeit/brot.jpeg" alt="Brotbacken">
</div>
<div class="viewer-controls">
<button class="viewer-button" id="prev-media"></button>
<button class="viewer-button" id="next-media"></button>
</div>
</div>
<br>
<!-- Rezept-Karte -->
<div class="card">
<h2>Zutaten:</h2>
<ul>
<li><label class="cl-checkbox"><input type="checkbox"><span>300 g Mehl</span></label></li>
@ -172,103 +215,110 @@
</ol>
</div>
<br><br>
<br>
<br>
<!-- Neuer Share-Button mit den alten Funktionen -->
<button class="button" onclick="openSharePopup()">
<!-- Share-Button -->
<button class="button" onclick="openSharePopup()">
<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" class="icon" fill="white">
<path d="M307 34.8c-11.5 5.1-19 16.6-19 29.2v64H176C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96h96v64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z"></path>
</svg>
Share
</button>
<!-- Modal für Sharing-Optionen -->
<div id="shareModal" class="modal">
<div class="modal-content">
<h2>Teilen</h2>
<!--
<button onclick="shareViaWhatsApp()">WhatsApp</button>
<button onclick="shareViaTelegram()">Telegram</button>
<button onclick="shareViaPinterest()">Pinterest</button>
<button onclick="shareViaEmail()">E-Mail</button>
<button onclick="copyToClipboard()">Link kopieren</button>
<button onclick="closeSharePopup()">Schließen</button>
-->
<div class="social-icons">
<a href="#" onclick="shareViaWhatsApp()">
<img src="/icons/whatsapp.svg" alt="WhatsApp" />
</a>
<a href="#" onclick="shareViaPinterest()">
<img src="/icons/pinterest.svg" />
</a>
<a href="#" onclick="shareViaTelegram()">
<img src="/icons/telegram.svg" alt="Telegram" />
</a>
<a href="#" onclick="shareViaEmail()">
<img src="/icons/email.svg" alt="E-Mail" />
</a>
<!-- Kopieren -->
<a href="#" onclick="copyToClipboard()">
<img src="/icons/copy.svg" />
</a>
</div>
<a href="#" onclick="shareViaWhatsApp()"><img src="/icons/whatsapp.svg" alt="WhatsApp" /></a>
<a href="#" onclick="shareViaPinterest()"><img src="/icons/pinterest.svg" /></a>
<a href="#" onclick="shareViaTelegram()"><img src="/icons/telegram.svg" alt="Telegram" /></a>
<a href="#" onclick="shareViaEmail()"><img src="/icons/email.svg" alt="E-Mail" /></a>
<a href="#" onclick="copyToClipboard()"><img src="/icons/copy.svg" /></a>
</div>
</div>
</div>
<script>
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/hefe-teilchen/');
const url = 'https://api.whatsapp.com/send?text=' + text;
window.open(url, '_blank');
}
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/hefe-teilchen/');
const url = 'https://t.me/share/url?url=' + text;
window.open(url, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD');
const text = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/hefe-teilchen/');
const url = 'https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media;
window.open(url, '_blank');
}
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const body = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/hefe-teilchen/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic recipe! https://test.somachtstefaniedas.de/hefe-teilchen/';
navigator.clipboard.writeText(text).then(function() {
alert('Text wurde in die Zwischenablage kopiert!');
}, function(err) {
alert('Fehler beim Kopieren in die Zwischenablage: ', err);
});
}
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) {
closeSharePopup();
// Medien-Wechsel
const mediaItems = [
{ type: 'image', src: '/hefe-teilchen/hefeteilchen.jpeg' },
{ type: 'video', src: '/hefe-teilchen/video.mov' }
];
let currentMediaIndex = 0;
const viewerContainer = document.getElementById('viewer-container');
function updateMedia() {
const item = mediaItems[currentMediaIndex];
viewerContainer.innerHTML = '';
if(item.type === 'image') {
const img = document.createElement('img');
img.src = item.src;
img.alt = 'Media';
viewerContainer.appendChild(img);
} else if(item.type === 'video') {
const video = document.createElement('video');
video.src = item.src;
video.controls = true;
video.autoplay = true;
video.style.width = '100%';
viewerContainer.appendChild(video);
}
}
document.getElementById('prev-media').addEventListener('click', ()=>{
currentMediaIndex = (currentMediaIndex - 1 + mediaItems.length) % mediaItems.length;
updateMedia();
});
document.getElementById('next-media').addEventListener('click', ()=>{
currentMediaIndex = (currentMediaIndex + 1) % mediaItems.length;
updateMedia();
});
updateMedia();
// Share-Funktionen
function openSharePopup() {
document.getElementById("shareModal").style.display = "block";
}
function closeSharePopup() {
document.getElementById("shareModal").style.display = "none";
}
function shareViaWhatsApp() {
const text = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/fluffigkrossejoghurtbroteohnegehzeit/');
window.open('https://api.whatsapp.com/send?text=' + text, '_blank');
}
function shareViaTelegram() {
const text = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/fluffigkrossejoghurtbroteohnegehzeit/');
window.open('https://t.me/share/url?url=' + text, '_blank');
}
function shareViaPinterest() {
const media = encodeURIComponent('URL_ZU_DEINEM_BILD');
const text = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/fluffigkrossejoghurtbroteohnegehzeit/');
window.open('https://pinterest.com/pin/create/button/?url=' + text + '&media=' + media, '_blank');
}
function shareViaEmail() {
const subject = encodeURIComponent('Klick the Witch');
const body = encodeURIComponent('Check out this fantastic recipe! https://test.somachtstefaniedas.de/fluffigkrossejoghurtbroteohnegehzeit/');
window.location.href = 'mailto:?subject=' + subject + '&body=' + body;
}
function copyToClipboard() {
const text = 'Check out this fantastic recipe! https://test.somachtstefaniedas.de/fluffigkrossejoghurtbroteohnegehzeit/';
navigator.clipboard.writeText(text).then(()=>{alert('Text wurde in die Zwischenablage kopiert!');}, (err)=>{alert('Fehler beim Kopieren: ' + err);});
}
window.onclick = function(event) {
const modal = document.getElementById('shareModal');
if (event.target == modal) closeSharePopup();
}
}
</script>
<br>
<br>
</body>
</html>

BIN
hefe-teilchen/video.MOV Normal file

Binary file not shown.

View File

@ -197,13 +197,13 @@
</a>
</div>
<nav>
<a href="index.html">HOME</a>
<a href="recipes.html">RECIPES</a>
<a href="/index.html">HOME</a>
<a href="/recipes/">RECIPES</a>
</nav>
<h1>so.mach.ich.das</h1>
<nav>
<a href="/contact.html">CONTACT</a>
<a href="bio.html">BIO</a>
<a href="/contact/">CONTACT</a>
<a href="/bio/">BIO</a>
</nav>
</header>

View File

@ -25,6 +25,13 @@
text-align: center;
}
.cl-checkbox input[type="checkbox"]:checked + span {
color: #999; /* leicht grau */
text-decoration: line-through;
transition: color 0.3s, text-decoration 0.3s; /* sanfter Übergang */
}
img {
width: 100%;
height: auto;

View File

@ -192,35 +192,31 @@
</style>
</head>
<body>
<header>
<div class="social-links">
<a href="https://www.instagram.com/so.mach.ich.das/" target="_blank">
<i class="fa-brands fa-instagram"></i>
</a>
<a href="https://youtube.com/@somachtstefaniedasstefanie435?feature=shared" target="_blank">
<i class="fa-brands fa-youtube"></i>
</a>
</div>
<nav>
<a href="index.html">HOME</a>
<a href="recipes.html">RECIPES</a>
</nav>
<h1>so.mach.ich.das</h1>
<nav>
<a href="/contact.html">CONTACT</a>
<a href="bio.html">BIO</a>
</nav>
</header>
<header>
<div class="social-links">
<a href="https://www.instagram.com/so.mach.ich.das/" target="_blank">
<i class="fa-brands fa-instagram"></i>
</a>
<a href="https://youtube.com/@somachtstefaniedasstefanie435?feature=shared" target="_blank">
<i class="fa-brands fa-youtube"></i>
</a>
</div>
<nav>
<a href="/index.html">HOME</a>
<a href="/recipes/">RECIPES</a>
</nav>
<h1>so.mach.ich.das</h1>
<nav>
<a href="/contact/">CONTACT</a>
<a href="/bio/">BIO</a>
</nav>
</header>
<br>
<br>
<div class="search">
<input type="text" id="searchInput" class="search__input" placeholder="Suchbegriff eingeben">
<button class="search__button" onclick="highlightSearch()">
<svg class="search__icon" viewBox="0 0 24 24">
<path d="M21.53 20.47l-3.66-3.66C19.195 15.24 20 13.214 20 11c0-4.97-4.03-9-9-9s-9 4.03-9 9 4.03 9 9 9c2.215 0 4.24-.804 5.808-2.13l3.66 3.66c.147.146.34.22.53.22s.385-.073.53-.22c.295-.293.295-.767.002-1.06zM3.5 11c0-4.135 3.365-7.5 7.5-7.5s7.5 3.365 7.5 7.5-3.365 7.5-7.5 7.5-7.5-3.365-7.5-7.5z"/>
</svg>
</button>
<button class="search__button" onclick="highlightSearch()">🔎</button>
<button onclick="navigateMatches(-1)">⬆️</button>
<button onclick="navigateMatches(1)">⬇️</button>
</div>
@ -228,31 +224,31 @@
<br>
<br>
<div id="content">
<article class="card">
<img src="Johannesbeeressig/johannesbeeressig.png" width="100%" alt="Johannesbeeressig">
<h3 class="title">Johannesbeeressig</h3>
<p class="description">Verleihe deinem Salat eine außergewöhnliche Note mit selbstgemachtem Johannesbeeressig.</p>
<a href="/Johannesbeeressig/" class="link">Klicke für mehr</a>
</article>
<article class="card">
<img src="hefe-teilchen/hefeteilchen.jpeg" width="100%" alt="Hefe Teilchen">
<h3 class="title">Hefe Teilchen</h3>
<p class="description">Locker-leichte Hefeteilchen, gefüllt mit Schokocreme oder Marmelade perfekt zum Kaffee oder Frühstück.</p>
<a href="/hefe-teilchen" class="link">Klicke für mehr</a>
</article>
<article class="card">
<img src="lachszwiebeldip/lachsdip.jpeg" width="100%" alt="Lachs-Zwiebel-Dip">
<h3 class="title">Lachs-Zwiebel-Dip</h3>
<p class="description">Herzhafter Lachs-Zwiebel-Dip mit Frischkäse und Kresse perfekt als Brotaufstrich oder Dip für Gäste.</p>
<a href="/lachszwiebeldip" class="link">Klicke für mehr</a>
</article>
</article>
<article class="card">
<img src="fluffigkrossejoghurtbroteohnegehzeit/brot.jpeg" width="100%" alt="fluffig krosse Johgurtbrote ohne Gehzeit">
<h3 class="title">Fluffig Krosse Joghurtbrote ohne Gehzeit</h3>
<p class="description">Locker und knusprig Joghurtbrote ganz ohne Gehzeit.</p>
<a href="/fluffigkrossejoghurtbroteohnegehzeit" class="link">Klicke für mehr</a>
</article>
<article class="card">
<img src="/Johannesbeeressig/johannesbeeressig.png" width="100%" alt="Johannesbeeressig">
<h3 class="title">Johannesbeeressig</h3>
<p class="description">Verleihe deinem Salat eine außergewöhnliche Note mit selbstgemachtem Johannesbeeressig.</p>
<a href="/Johannesbeeressig/" class="link">Klicke für mehr</a>
</article>
<article class="card">
<img src="/hefe-teilchen/hefeteilchen.jpeg" width="100%" alt="Hefe Teilchen">
<h3 class="title">Hefe Teilchen</h3>
<p class="description">Locker-leichte Hefeteilchen, gefüllt mit Schokocreme oder Marmelade perfekt zum Kaffee oder Frühstück.</p>
<a href="/hefe-teilchen" class="link">Klicke für mehr</a>
</article>
<article class="card">
<img src="/lachszwiebeldip/lachsdip.jpeg" width="100%" alt="Lachs-Zwiebel-Dip">
<h3 class="title">Lachs-Zwiebel-Dip</h3>
<p class="description">Herzhafter Lachs-Zwiebel-Dip mit Frischkäse und Kresse perfekt als Brotaufstrich oder Dip für Gäste.</p>
<a href="/lachszwiebeldip" class="link">Klicke für mehr</a>
</article>
</article>
<article class="card">
<img src="/fluffigkrossejoghurtbroteohnegehzeit/brot.jpeg" width="100%" alt="fluffig krosse Johgurtbrote ohne Gehzeit">
<h3 class="title">Fluffig Krosse Johgurtbrote ohne Gehzeit</h3>
<p class="description">Locker und knusprig Joghurtbrote ganz ohne Gehzeit.</p>
<a href="/fluffigkrossejoghurtbroteohnegehzeit" class="link">Klicke für mehr</a>
</article>
</div>
<script>

View File

@ -1,352 +0,0 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Suche auf der Website</title>
<style>
.search {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 20px;
}
.search__input {
font-family: inherit;
font-size: inherit;
background-color: #f4f2f2;
border: none;
color: #646464;
padding: 0.7rem 1rem;
border-radius: 30px;
width: 12em;
transition: all ease-in-out .5s;
}
.search__input:hover,
.search__input:focus {
box-shadow: 0 0 1em #00000013;
outline: none;
}
.search__button {
border: none;
background-color: #f4f2f2;
padding: 0.6rem;
border-radius: 50%;
cursor: pointer;
}
.search__icon {
height: 1.3em;
width: 1.3em;
fill: #b4b4b4;
}
.highlight {
background-color: yellow;
border-radius: 3px;
}
.highlight.active {
background-color: orange;
}
/* Grundlegendes Styling */
body {
font-family: system-ui, sans-serif;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
background-color: white;
}
/* Header */
header {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
padding: 20px;
max-width: 1200px;
flex-wrap: wrap;
}
nav {
display: flex;
gap: 20px;
}
h1 {
margin: 0;
font-size: 1.8em;
}
a {
text-decoration: none;
color: black;
}
/* Social Links (links positioniert) */
.social-links {
display: flex;
gap: 10px;
align-items: center;
}
.social-links a {
font-size: 1.5em;
}
/* Ladebildschirm */
.loading-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 0.8);
display: flex;
align-items: center;
justify-content: center;
z-index: 9999;
}
.spinner {
width: 50px;
height: 50px;
border: 5px solid rgba(0, 0, 0, 0.1);
border-top: 5px solid black;
border-radius: 50%;
animation: spin 1s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* Inhalt */
.content {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
text-align: center;
width: 100%;
max-width: 1200px;
padding: 20px;
box-sizing: border-box;
}
.text, .image {
flex: 1;
width: 100%;
text-align: center;
}
.image img {
max-width: 100%;
height: auto;
border-radius: 8px;
}
.divider {
width: 100%;
height: 2px;
background-color: black;
margin: 20px 0;
}
/* Karte */
.card {
max-width: 300px;
background: white;
color: black;
border: 1px solid #dbdce0;
padding: 25px;
box-shadow: 8px 8px 0 rgba(32,33,37,.1);
transition: box-shadow .5s, transform .5s;
border-radius: 8px;
display: inline-block;
margin: 10px;
}
.card:hover {
transform: translate(-2px, -4px);
box-shadow: 16px 16px 0 rgba(32,33,37,.06);
}
.card img {
max-width: 100%;
height: auto;
}
.card .title {
font-weight: bold;
margin-top: 1.5em;
}
.card .description {
line-height: 1.5em;
}
.card a {
color: #1967d2;
font-size: .8em;
font-weight: 600;
}
/* Responsives Design */
@media (max-width: 768px) {
header {
flex-direction: column;
align-items: center;
text-align: center;
}
.social-links {
width: 100%;
justify-content: center;
margin-top: 10px;
}
.content {
flex-direction: column;
align-items: center;
}
.text, .image {
width: 100%;
}
.card {
max-width: 90%;
margin: 10px 0;
}
}
</style>
</head>
<body>
<header>
<div class="social-links">
<a href="https://www.instagram.com/so.mach.ich.das/" target="_blank">
<i class="fa-brands fa-instagram"></i>
</a>
<a href="https://youtube.com/@somachtstefaniedasstefanie435?feature=shared" target="_blank">
<i class="fa-brands fa-youtube"></i>
</a>
</div>
<nav>
<a href="index.html">HOME</a>
<a href="recipes.html">RECIPES</a>
</nav>
<h1>so.mach.ich.das</h1>
<nav>
<a href="/contact.html">CONTACT</a>
<a href="bio.html">BIO</a>
</nav>
</header>
<br>
<br>
<div class="search">
<input type="text" id="searchInput" class="search__input" placeholder="Suchbegriff eingeben">
<button class="search__button" onclick="highlightSearch()">
<svg class="search__icon" viewBox="0 0 24 24">
<path d="M21.53 20.47l-3.66-3.66C19.195 15.24 20 13.214 20 11c0-4.97-4.03-9-9-9s-9 4.03-9 9 4.03 9 9 9c2.215 0 4.24-.804 5.808-2.13l3.66 3.66c.147.146.34.22.53.22s.385-.073.53-.22c.295-.293.295-.767.002-1.06zM3.5 11c0-4.135 3.365-7.5 7.5-7.5s7.5 3.365 7.5 7.5-3.365 7.5-7.5 7.5-7.5-3.365-7.5-7.5z"/>
</svg>
</button>
<button onclick="navigateMatches(-1)">⬆️</button>
<button onclick="navigateMatches(1)">⬇️</button>
</div>
<br>
<br>
<div id="content">
<article class="card">
<img src="johannesbeeressig.png" width="100%" alt="Johannesbeeressig">
<h3 class="title">Johannesbeeressig</h3>
<p class="description">Verleihe deinem Salat eine außergewöhnliche Note mit selbstgemachtem Johannisbeeressig.</p>
<a href="/Johannesbeeressig/" class="link">See the recipe</a>
</article>
</div>
<script>
let currentMatch = -1;
let matches = [];
function clearHighlights() {
matches.forEach(span => {
const parent = span.parentNode;
parent.replaceChild(document.createTextNode(span.textContent), span);
parent.normalize();
});
matches = [];
currentMatch = -1;
}
function highlightSearch() {
clearHighlights();
const searchInput = document.getElementById("searchInput");
const searchTerm = searchInput.value.trim().toLowerCase();
if (!searchTerm) return;
const content = document.getElementById("content");
const regex = new RegExp(searchTerm, "gi");
content.innerHTML = content.innerHTML.replace(/(<mark class="highlight.*?">|<\/mark>)/g, '');
const walker = document.createTreeWalker(content, NodeFilter.SHOW_TEXT);
const nodes = [];
while (walker.nextNode()) {
const node = walker.currentNode;
if (node.parentNode && node.nodeValue.toLowerCase().includes(searchTerm)) {
nodes.push(node);
}
}
nodes.forEach(node => {
const spanWrapper = document.createElement('span');
spanWrapper.innerHTML = node.nodeValue.replace(regex, match => `<mark class="highlight">${match}</mark>`);
node.parentNode.replaceChild(spanWrapper, node);
});
matches = Array.from(document.querySelectorAll(".highlight"));
if (matches.length > 0) {
currentMatch = 0;
scrollToCurrent();
}
}
function scrollToCurrent() {
matches.forEach((el, i) => {
el.classList.toggle("active", i === currentMatch);
});
matches[currentMatch].scrollIntoView({ behavior: "smooth", block: "center" });
}
function navigateMatches(direction) {
if (matches.length === 0) return;
currentMatch = (currentMatch + direction + matches.length) % matches.length;
scrollToCurrent();
}
// Optional: Suche mit Enter starten
document.getElementById("searchInput").addEventListener("keydown", e => {
if (e.key === "Enter") highlightSearch();
});
</script>
<script>
// Funktion, die die Ladeanimation nach dem Laden der Seite ausblendet
window.onload = function() {
document.querySelector('.loading-overlay').style.display = 'none';
};
</script>
</body>
</html>