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>
