[RUBY] So wechseln Sie Miniaturbilder mit JavaScript

So wechseln Sie Miniaturbilder mit JavaScript

Bild ↓

Screenshot from Gyazo

Ich habe die Bildersetzung mit JavaScript implementiert!

Verfahren

  1. Erstellen Sie eine HTML-Datei und fügen Sie das Bild des Bildes ein
  2. Codierung mit CSS
  3. Schreiben Sie die Methode, wenn Sie mit JavaScript auf das Bild klicken

Es ist zu rau, haha. Ich werde es tatsächlich schreiben und erklären.

Schreiben Sie HTML

<div class="center">
  <div>
   <img src="img1.jpg " id="bigimg">
  </div>
  <ul>
    <li><img src="thumb-img1.jpg " class="thumb" data-image="img1.jpg "></li>
    <li><img src="thumb-img2.jpg " class="thumb" data-image="img2.jpg "></li>
    <li><img src="thumb-img3.jpg " class="thumb" data-image="img3.jpg "></li>
    <li><img src="thumb-img4.jpg " class="thumb" data-image="img4.jpg "></li>
  </ul>
 </div>

Legen Sie das übergeordnete Element und das img-Tag fest, das id = "bigimg" direkt darunter enthält. Dies muss später mit getElementById abgerufen werden. Fügen Sie daher ein Attribut hinzu. Erstellen Sie ein ul-Tag und speichern Sie das Bild, das Sie anzeigen möchten, in der Miniaturansicht im Listen-Tag. Hier kommt das Attribut "Datenbild" ins Spiel.

Was ist das Datenbildattribut?

Obwohl es sich um dieses Attribut handelt, existiert das Datenbildattribut nicht und es ist das Attribut "Daten". (Auch als benutzerdefiniertes Datenattribut bekannt) Einfach ausgedrückt sieht es so aus, diesmal habe ich es Bild genannt, aber im Grunde ist alles in Ordnung.

Gründe für die Verwendung des data- * -Attributs

Es wird verwendet, um Daten in HTML-Tags einzubetten und ihre Werte aus Javascript zu lesen oder neu zu schreiben. Ich werde dieses Datenbildattribut später mit einer JavaScript-Methode aufrufen, also werde ich es aufschreiben.

Codierung mit CSS

Ich dachte, es wäre in Ordnung, dies separat wegzulassen, aber ich werde es mit CSS codieren, damit es so aussieht.

section img{
  max-width: 100%;
}
.center{
  margin: 0 auto 0 auto;
  max-width: 90%;
  width: 500px;
}
.center ul{
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
}
.center li{
  flex: 1 1 auto;
  margin-right: 8px;
}
li:last-of-type{
  margin-right: 0;
}

Ich werde die Erklärung hier weglassen, aber es sieht wie folgt aus.

image.png

Ein Klick auf das Bild hier bringt natürlich nichts. ~~ Die Vögel stehen nur in Klammern ~~

Schreiben Sie JavaScript

Jetzt ist das Hauptthema von hier. Ich werde JavaScript schreiben.


const thumbs = document.querySelectorAll('.thumb');
 //CSS-Selektor'.thub'Und ordne es den konstanten Daumen zu
 console.log(thumbs);  //Stellen Sie sicher, dass der Wert einmal in der Konsole gespeichert ist.

image.png

Es ist in Ordnung, wenn die Bilder in einem Array wie diesem gespeichert sind. Ich erhalte die .thumb des CSS-Selektors mit der querySeleAll-Methode.

const thumbs = document.querySelectorAll('.thumb');
  // console.log(thumbs);
thumbs.forEach(function(item,index){
 item.onclick = function(){
  document.geElementById('bigimg').src = this.dataset.image;
 }
});

Es gibt eine Funktion in thubs.forEach und es gibt einen Parameter (item, index) in der Funktion. Das Element ist das zuvor auf der Konsole bestätigte img-Element, und der Index ist die Array-Nummer. Was reduziert wird, ist, dass beim Auslösen des Ereignisses item.click die document.getElementById in der letzten Zeile die 'bigimg'id' abruft und das src-Attribut durch das Datenbildattribut ersetzt, das zuerst in HTML beschrieben wurde. Ersetzt durch das data- * -Attribut in this.dataset.image.

Wenn das Klickereignis ausgelöst wird, wird das Datenbild bei "bigimg" eingegeben und die Miniaturansicht von bigimg geändert.

Erhaltenes Element.Attribut=Wert;



 Diesmal


#### **`document.geElementById('bigimg').src = this.dataset.image;`**

Das ist der Teil.

Es war gegen Ende etwas schwierig zu erklären, aber es sieht so aus. Ich werde den fertigen Quellcode einfügen und fertig stellen!

const thumbs = document.querySelectorAll('.thumb');
  // console.log(thumbs);
  thumbs.forEach(function(item,index){
    item.onclick = function(){
      document.getElementById('bigimg').src = this.dataset.image;
    }
  });
<div class="center">
    <div>
      <img src="img1.jpg " id="bigimg">
    </div>
    <ul>
      <li><img src="thumb-img1.jpg " class="thumb" data-image="img1.jpg "></li>
      <li><img src="thumb-img2.jpg " class="thumb" data-image="img2.jpg "></li>
      <li><img src="thumb-img3.jpg " class="thumb" data-image="img3.jpg "></li>
      <li><img src="thumb-img4.jpg " class="thumb" data-image="img4.jpg "></li>
    </ul>
  </div>

das ist alles! Wenn Sie Bedenken haben, hinterlassen Sie bitte einen Kommentar : kissing_closed_eyes: chu ☆

Recommended Posts

So wechseln Sie Miniaturbilder mit JavaScript
Einbetten von JavaScript-Variablen in HTML mit Thymeleaf
[Schienen] Wie poste ich Bilder?
So wechseln Sie Tomcat context.xml mit Eclipse WTP
So minimieren Sie Java-Images
Wie man mit html.erb nummeriert (nummeriert)
So löschen Sie mit Docker Bilder ohne Tags in großen Mengen
So aktualisieren Sie mit activerecord-import
Wie fange ich mit schlank an?
Wie man ein Zeichen mit "~" einschließt
Wie man mssql-tools mit alpine benutzt
Java Eclips So debuggen Sie JavaScript
So starten Sie Camunda mit Docker
So wechseln Sie die Java-Version mit direnv im Terminal auf dem Mac
So beschneiden Sie ein Bild in libGDX
So passen Sie TextPosition mit der iOS-Tastaturerweiterung an
So kompilieren Sie Java mit VsCode & Ant
[Rails] So laden Sie Bilder mit Carrierwave hoch
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
Konvertieren Sie die C-Sprache mit Emscripten in JavaScript
[Android] Wie man mit dunklen Themen umgeht
Verwendung von BootStrap mit Play Framework
[Hinweis] Erste Schritte mit Rspec
So wechseln Sie Java-Versionen auf dem Mac
API-basierte Steuerung mit cancancan
So erreichen Sie den Dateidownload mit Feign
So aktualisieren Sie verwandte Modelle mit accept_nested_attributes_for
So setzen Sie JAVA_HOME mit dem Appassembler-Maven-Plugin von Maven
So implementieren Sie TextInputLayout mit Validierungsfunktion
So behandeln Sie Anmeldefehler mit devise
So löschen Sie Daten mit einem externen Schlüssel
So testen Sie den privaten Bereich mit JUnit
So überwachen Sie Nginx mit Docker-Compose mit Datadog
Der Umgang mit dem Vorkompilieren von Assets ist fehlgeschlagen.
So wechseln Sie zwischen mehreren Java-Versionen
So erreichen Sie das Hochladen von Dateien mit Feign
So führen Sie Blazor (C #) mit Docker aus
So erstellen Sie eine Rails 6-Umgebung mit Docker
So laden Sie Oracle JDK 8 U / min mit Curl herunter
[Java] So testen Sie, ob es in JUnit null ist
Wie man jeden Fall mit Mockito 1x verspottet
Wie man jeden Fall mit PowerMock + Mockito1x verspottet
So testen Sie Interrupts während Thread.sleep mit JUnit
Verwendung des eingebauten h2db mit Federstiefel
Wie man Stimme oder Musik mit Javascript spielt
Verwendung des Java-Frameworks mit AWS Lambda! ??
So speichern Sie Bilder auf Heroku in S3 unter AWS
So erstellen Sie mit ActiveHash mehrere Pulldown-Menüs
Verwendung der Java-API mit Lambda-Ausdrücken
Erste Schritte mit Eclipse Micro Profile
So geben Sie jemandem Ihr Image mit Docker
[Rails] So laden Sie mehrere Bilder mit Carrierwave hoch
So fügen Sie mit MyBatis alles auf einmal ein
[Java] So wechseln Sie von Open JDK zu Oracle JDK
So schreiben Sie Testcode mit Basic-Zertifizierung