Widget:GOV-Test: Unterschied zwischen den Versionen
Aus Altes Köln
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
Zeile 16: | Zeile 16: | ||
.iframe-wrapper { | .iframe-wrapper { | ||
width: | width: 100%; /* Volle Breite des Containers */ | ||
position: relative; | |||
overflow: hidden; /* Überschüssige Inhalte ausblenden | overflow: hidden; /* Überschüssige Inhalte außerhalb der Box ausblenden */ | ||
} | } | ||
iframe { | iframe { | ||
position: | position: relative; | ||
border: none; | |||
transform-origin: top left; /* Skalierung startet oben links */ | |||
transform-origin: top left; /* Skalierung | |||
} | } | ||
/* | /* Dynamische Skalierung anpassen */ | ||
@media (max-width: 768px) { | @media (max-width: 768px) { | ||
iframe { | iframe { | ||
width: calc(100% * var(--scale)); /* Skaliere auf die dynamische Breite */ | |||
height: auto; /* Automatische Höhe basierend auf Breite */ | |||
height: | |||
} | } | ||
} | } | ||
Zeile 54: | Zeile 40: | ||
</div> | </div> | ||
<script> | |||
const iframe = document.getElementById('responsive-iframe'); | |||
const wrapper = document.querySelector('.iframe-wrapper'); | |||
function adjustIframeScale() { | |||
const viewportWidth = wrapper.offsetWidth; // Aktuelle Breite des Containers | |||
const iframeWidth = 1024; // Die bekannte Breite der iframe-Seite (z. B. Desktop-Version) | |||
// Berechne den Skalierungsfaktor | |||
const scale = viewportWidth / iframeWidth; | |||
// Setze den Skalierungsfaktor als CSS-Variable | |||
iframe.style.setProperty('--scale', scale); | |||
iframe.style.transform = `scale(${scale})`; | |||
// Passe die Höhe an, um den Inhalt vollständig sichtbar zu machen | |||
iframe.style.height = `${iframe.contentWindow.document.body.scrollHeight * scale}px`; | |||
} | |||
// Initiale Anpassung, wenn die Seite geladen wird | |||
window.addEventListener('load', adjustIframeScale); | |||
// Skalierung erneut anpassen, wenn die Größe des Viewports geändert wird | |||
window.addEventListener('resize', adjustIframeScale); | |||
</script> | |||
Version vom 15. Januar 2025, 21:47 Uhr
Variante: Aufruf von GOV mit Iframe und "show"
Variante: responsiv
<style> body { margin: 0; padding: 0; font-family: Arial, sans-serif; }
.iframe-wrapper { width: 100%; /* Volle Breite des Containers */ position: relative; overflow: hidden; /* Überschüssige Inhalte außerhalb der Box ausblenden */ }
iframe { position: relative; border: none; transform-origin: top left; /* Skalierung startet oben links */ }
/* Dynamische Skalierung anpassen */ @media (max-width: 768px) { iframe { width: calc(100% * var(--scale)); /* Skaliere auf die dynamische Breite */ height: auto; /* Automatische Höhe basierend auf Breite */ } } </style>
<script>
const iframe = document.getElementById('responsive-iframe'); const wrapper = document.querySelector('.iframe-wrapper');
function adjustIframeScale() { const viewportWidth = wrapper.offsetWidth; // Aktuelle Breite des Containers const iframeWidth = 1024; // Die bekannte Breite der iframe-Seite (z. B. Desktop-Version) // Berechne den Skalierungsfaktor const scale = viewportWidth / iframeWidth;
// Setze den Skalierungsfaktor als CSS-Variable iframe.style.setProperty('--scale', scale); iframe.style.transform = `scale(${scale})`;
// Passe die Höhe an, um den Inhalt vollständig sichtbar zu machen iframe.style.height = `${iframe.contentWindow.document.body.scrollHeight * scale}px`; }
// Initiale Anpassung, wenn die Seite geladen wird window.addEventListener('load', adjustIframeScale);
// Skalierung erneut anpassen, wenn die Größe des Viewports geändert wird window.addEventListener('resize', adjustIframeScale);
</script>