Sempervivum
Erfahrenes Mitglied
Welches meinst Du jetzt, die Alternative mit div bzw. figure oder das Bild im iFrame zu zentrieren?
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
<script>
document.querySelector('iframe[name="iframe"]').contentWindow
.addEventListener('load',function(e){
const theStyle = `
<style>
img {
width: 100%;
height: 100%;
object-fit: contain;
}
</style>`;
e.target.head.insertAdjacentHTML('beforeend', theStyle);
}, true);
</script>
<!DOCTYPE html>
<html>
<head>
<style>
#figure {
width: 100%;
height: 100%;
object-fit: contain;
}
</style>
<script>
</script>
</head>
<body>
<?php
$dateiendungen = ["gif","jpg","png"]; // Dateiendungen
$bilder = alleBilder("images", $dateiendungen); // Verzeichnis
$dateien = $verzeichnisse = 0;
$ausgabe = '';
function alleBilder($verzeichnis, $dateiendungen) {
$dateien = [];
$elemente = glob($verzeichnis . '*', GLOB_MARK | GLOB_SORT); // alternativ: GLOB_NOSORT
foreach ($elemente as $element) {
if (substr($element, -1) != DIRECTORY_SEPARATOR) {
$dateiendung = explode(".", $element);
if (count($dateiendung) == 2 &&
in_array($dateiendung[1], $dateiendungen)) {
$dateien[] = $element;
}
}
else {
$dateien[] = $element;
$dateien = array_merge($dateien, alleBilder($element, $dateiendungen));
}
}
return $dateien;
}
foreach ($bilder as $bild) {
if (substr($bild, -1, 1) == DIRECTORY_SEPARATOR) {
$ausgabe .= 'Verzeichnis: <strong>' . $bild . '</strong><br />';
$verzeichnisse++;
}
else {
$ausgabe .= '<a href="' . $bild . '">' . basename($bild) . '</a><br />';
$dateien++;
}
}
echo '<div style="position: absolute; top: 3%; left: 3%;"><p>Bilder: <strong>' . $dateien . '</strong><br />
Verzeichnisse: <strong>' . $verzeichnisse . '</strong></p>' . $ausgabe . '</div>';
echo '<div style="position: absolute; top: 3%; left: 33%;"><figure id="figure"><img src="" id="imageinfigure"><figcaption></figcaption></figure></div>';
?>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style>
body {
display: flex;
align-items: flex-start;
}
#bilderliste, figure {
margin: 0;
padding: 10px;
}
#bilderliste {
flex: 0 0 auto;
}
figure {
flex: 1;
}
figure img {
width: 100%;
height: 100%;
/* object-fit: contain; */
min-width: 1px;
}
</style>
<script>
</script>
</head>
<body>
<?php
$dateiendungen = ["gif", "jpg", "png"]; // Dateiendungen
$bilder = alleBilder("images2", $dateiendungen); // Verzeichnis
$dateien = $verzeichnisse = 0;
$ausgabe = '';
function alleBilder($verzeichnis, $dateiendungen)
{
$dateien = [];
$elemente = glob($verzeichnis . '*', GLOB_MARK); // alternativ: GLOB_NOSORT
foreach ($elemente as $element) {
if (substr($element, -1) != DIRECTORY_SEPARATOR) {
$dateiendung = explode(".", $element);
if (count($dateiendung) == 2 &&
in_array($dateiendung[1], $dateiendungen)) {
$dateien[] = $element;
}
} else {
$dateien[] = $element;
$dateien = array_merge($dateien, alleBilder($element, $dateiendungen));
}
}
return $dateien;
}
foreach ($bilder as $bild) {
if (substr($bild, -1, 1) == DIRECTORY_SEPARATOR) {
$ausgabe .= 'Verzeichnis: <strong>' . $bild . '</strong><br />';
$verzeichnisse++;
} else {
$ausgabe .= '<a href="' . $bild . '">' . basename($bild) . '</a><br />';
$dateien++;
}
}
echo '<div id="bilderliste"><p>Bilder: <strong>' . $dateien . '</strong><br />
Verzeichnisse: <strong>' . $verzeichnisse . '</strong></p>' . $ausgabe . '</div>';
?>
<figure><img id="imageinfigure"></figure>
<script>
const theImg = document.getElementById('imageinfigure');
// Wir registrieren einen Eventlistener fuer den Container mit den Links auf die Bilder.
// Wird ein Link geklickt, steigt das Event im Baum aufwaerts und kommt beim
// Container an. Um sicher zu gehen, dass das geklickte Element der Link ist,
// pruefen wir, ob es ein href-Attribut hat.
document.getElementById ('bilderliste').addEventListener('click', event => {
if (event.target.href) {
// Wir unterdruecken die Defaultaktion fuer den Link weil wir ja nicht
// wollen, dass eine neue Seite mit dem Bild aufgerufen wird:
event.preventDefault();
// Das href-Attribut ist die URL des Bildes. Wir weisen sie dem src-Attribut
// des img im figure-Tag zu:
theImg.src = event.target.href;
}
});
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style>
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: Arial;
}
.container {
position: relative;
display: none;
}
#expandedImg {
/* expands img to the percentage width of the display */
width: 50%;
}
</style>
</head>
<body>
<?php
$dateiendungen = ["gif","jpg","png"]; // Dateiendungen
$bilder = alleBilder("images", $dateiendungen); // Verzeichnis
$dateien = $verzeichnisse = 0;
$ausgabe = '';
function alleBilder($verzeichnis, $dateiendungen) {
$dateien = [];
$elemente = glob($verzeichnis . '*', GLOB_MARK | GLOB_SORT); // alternativ: GLOB_NOSORT
foreach ($elemente as $element) {
if (substr($element, -1) != DIRECTORY_SEPARATOR) {
$dateiendung = explode(".", $element);
if (count($dateiendung) == 2 &&
in_array($dateiendung[1], $dateiendungen)) {
$dateien[] = $element;
}
}
else {
$dateien[] = $element;
$dateien = array_merge($dateien, alleBilder($element, $dateiendungen));
}
}
return $dateien;
}
foreach ($bilder as $bild) {
if (substr($bild, -1, 1) == DIRECTORY_SEPARATOR) {
$ausgabe .= 'Verzeichnis: <strong>' . $bild . '</strong><br />';
$verzeichnisse++;
}
else {
$ausgabe .= '<img style="width: 60px; height: auto" src="images/' . basename($bild) . '" onclick="myFunction(this);"><br />';
$dateien++;
}
}
?>
<div>
<?php
echo $ausgabe;
?>
</div>
<div class="container">
<img id="expandedImg">
<div id="imgtext"></div>
</div>
<script>
function myFunction(imgs) {
var expandImg = document.getElementById("expandedImg");
var imgText = document.getElementById("imgtext");
expandImg.src = imgs.src;
imgText.innerHTML = imgs.alt;
expandImg.parentElement.style.display = "block";
}
</script>
</body>
</html>