Ich habe eine Bildergalerie, die CSS und Javascript verwendet, um das Bild in einem modalen über die Galerie basierend auf einem Tutorial von w3schools.com zu öffnen. Ich hatte ursprünglich Probleme damit, auf ein externes Bild zu zeigen, aber jemand hier konnte mir zeigen, wie ich das beheben kann. Nun möchte ich Vorwärts- und Rückwärts-Buttons machen, damit der Benutzer sich durch die Galerie bewegen kann, ohne das Modal jedes Mal zu schließen. Ich habe es geschafft, dass die Pfeiltasten im Modul erscheinen (und Größe und Bewegung und Erscheinen), wie ich es möchte. Leider konnte ich die Schaltflächen nicht erreichen, um das Bild und den Text in der Mitte zu ändern. Das Beste, was ich tun konnte, war es, dass es aufhört, das Modal zu zerstören und zumindest auf dem gleichen Bild und Text zu bleiben, wenn man darauf klickt. Hier ist mein Code soweit.Zurück und vorwärts Tasten auf einem Modal über eine Bildergalerie (durchblättern)?
<!-- The Modal -->
<div id="myModal" class="modal">
<span class="close">×</span>
<div class="backButton" id="bckBtn"><img src="../gallery_images/buttonPlaceHolder.png" alt="Back" style="width:100%; float:left">
</div>
<img class="modal-content" id="img01">
<div id="caption"></div>
<div class="forwardButton" id="fwdBtn"><img src="../gallery_images/buttonPlaceHolder.png" alt="Forward" style="width:100%; float:right;">
</div>
</div>
<script>
var modal = document.getElementById('myModal');
var span = document.getElementsByClassName("close")[0];
span.onclick = function() {
modal.style.display = "none";
}
var backButton = document.getElementById('bckBtn');
var forwardButton = document.getElementById('fwdBtn');
var images = document.getElementsByTagName('img');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
var i;
for (i = 0; i < images.length; i++) {
images[i].onclick = function(){
modal.style.display = "block";
var src = this.src;
var filename = src.substring(src.lastIndexOf('/')+1);
var filepath = src.substring(0, src.lastIndexOf('/')+1);
modalImg.src = filepath + 'large-' + filename;
modalImg.alt = this.alt;
captionText.innerHTML = this.nextElementSibling.innerHTML;
backButton.onclick = function() {
var filename = src.substring(src.lastIndexOf('/')+1);
var filepath = src.substring(0, src.lastIndexOf('/')+1);
modalImg.src = filepath + 'large-' + filename;
modalImg.alt = this.alt;
captionText.innerHTML = nextElementSibling.innerHTML;
}
forwardButton.onclick = function() {
var filename = src.substring(src.lastIndexOf('/')+1);
var filepath = src.substring(0, src.lastIndexOf('/')+1);
modalImg.src = filepath + 'large-' + filename;
modalImg.alt = this.alt;
captionText.innerHTML = nextElementSibling.innerHTML;
}
}
}
modalImg.onclick = function() {
modal.style.display = "none";
}
</script>
Scheint, wie lange und komplizierte Verfahren zu schaffen, was ich möchte, aber ich bin neu in Javascript (gerade begonnen heute). Irgendwelche Gedanken würden geschätzt werden.
Thank you! Ihr Code arbeitete mit zwei Vorbehalten: Erstens, die Zurück/Vorwärts-Tasten funktionierten in umgekehrter Richtung - die Vorwärts-Taste ging rückwärts und die Rückwärts-Taste ging vorwärts. Ich habe das Skript so geändert, dass der Code/Funktionen für BackButton jetzt vorwärts ist und umgekehrt. Mein Problem ist jetzt, dass wenn ich zu dem vorletzten Bild 36 komme, es auf 0 springt und 37 überspringt. Wenn ich "Zurück" drücke, wird es wieder auf 37 zurückgehen. Hier ist meine Galerie: [MyGallery] (http://www.personal.kent.edu/~mstingling/work/traditional/traditional.html). Ich werde versuchen, die Lösung zu finden, wenn ich die nächste Zeit habe. –
Zweiter Vorbehalt wäre, dass ich in Zukunft Bilder hinzufügen kann. Bilder werden an die Spitze hinzugefügt. Das obere Bild ist 0. Ich habe versucht, die Nummerierung so zu ändern, dass 37 oben war und 0 unten, aber das brach das Vorwärts/Rückwärts-System. Ich werde versuchen, eine Lösung mit dem zu finden, was Sie mir gegeben haben. Es ist schwierig, die Zeit zu finden, in der Sie Vollzeit arbeiten und andere Verpflichtungen haben. Das heißt, ich schätze den Weg, den Sie mir gesetzt haben. –
Antwort aktualisiert! Aber ich werde hier aufhören, freie Codierung zu machen ... Auch wenn es eine lustige Übung für mich war. ;) –