js, um einfache Lupeneffekte zu erzielen

js, um einfache Lupeneffekte zu erzielen

In diesem Artikelbeispiel wird der spezifische Code von js zur Erzielung eines einfachen Lupeneffekts als Referenz geteilt. Der spezifische Inhalt ist wie folgt

Schauen wir uns zunächst die Wirkung an:

Bevor wir über die Lupe schreiben, wollen wir zunächst die Positionierung verstehen:

Normalerweise ist das untergeordnete Element absolut relativ zum übergeordneten Element (das übergeordnete Element ist relativ positioniert und das untergeordnete Element ist absolut positioniert).

So werden Elemente positioniert:

1. Statische Positionierung, der Standardzustand aller Elemente ohne Hinzufügen einer Positionierungsmethode

2. Relative Positionierung, ohne den Dokumentfluss zu verlassen, kann relativ zu seiner ursprünglichen Position verschoben werden

3. Feste Positionierung, vollständig außerhalb des Dokumentflusses, bewegt sich relativ zum leeren Bereich des Browsers und scrollt nicht aufgrund des Scrollens des Browsers

4. Die absolute Positionierung ist vollständig vom Dokumentfluss getrennt und wird relativ zum darüber liegenden N-Ebenen-Element positioniert. Wenn das übergeordnete Element keine relative, absolute oder feste Positionierungsmethode hat, sucht das absolut positionierte Element bis zur oberen Ebene.

Wir lokalisieren zuerst die Box und die Lupenbox und verstecken dann die Lupenbox

.Kasten {
 Breite: 450px;
 Höhe: 450px;
 Rand: 100px 0 0 100px;
 Rand: 1px durchgehend rot;
 Position: relativ;
 }

 /* Großes Kästchen rechts */
 .bigBox{
 Breite: 540px;
 Höhe: 540px;
 Position: absolut;
 oben: 100px;
 links: 560px;
 Rand: 1px durchgezogen #ccc;
 Überlauf: versteckt;
 Anzeige: keine;
 }
 .bigBox img {
 Position: absolut;
 links: 0;
 oben: 0;
 }


 /* Überlagerung */
 .box .maske{
 Breite: 260px;
 Höhe: 260px;
 Hintergrundfarbe: gelb;
 /*Transparenz anpassen*/
 Deckkraft: .4;
 Position: absolut;
 links: 0;
 oben: 0;
 /*Standardmäßig verschwinden*/
 Anzeige: keine;
 }

Beim Schreiben von js sollten wir Folgendes beachten:

Wenn die Seite geladen ist, binden Sie die Maus-Eingabe- und -Ausblendereignisse an das Feld

<Skript>
 
 fenster.onload = Funktion (){
 var box = document.querySelector(".box");
 var mask = document.querySelector(".mask");
 var bigBox = document.querySelector(".bigBox");
 var bigImg = document.querySelector(".bigBox > img");
 Konsole.log(bigImg);
 
 //Maus bewegt sich ins Feld.onmouseover = function (){
 document.querySelector(".mask").style.display = "Block";
 document.querySelector(".bigBox").style.display = "Block";
 }
 // Aus der Box herausbewegen.onmouseout = function (){
 document.querySelector(".mask").style.display = "keine";
 document.querySelector(".bigBox").style.display = "keine";
 }

 // Lassen Sie das Overlay der Mausbewegung folgen box.onmousemove = function (){
 // Da die Box einen Rand von 100 Pixeln hat, müssen wir diesen abziehen, da sie sonst falsch ausgerichtet ist. var left = event.pageX - 100 - 130;
 var top = event.pageY – 100 – 130;
 // Das abdeckende Objekt kann den Bereich der Box nicht überschreiten, daher ist es notwendig, den Bereich der Koordinatenwerte zu bestimmen. // Ermitteln Sie die maximale Distanz, über die sich das abdeckende Objekt in der Box bewegen kann. var maskMax = this.offsetWidth - mask.offsetWidth;
 //Richter links
 wenn(links <= 0){
 links = 0;
 }sonst wenn(links >= maskMax){
 links = MaskeMax;
 }

 // Spitze
 wenn(oben <= 0){
 oben = 0;
 }sonst wenn(oben >= maskMax){
 oben = MaskeMax;
 }

 //Setze die linken und oberen Werte auf den Stil mask.style.left = left + "px";
 mask.style.top = oben + "px";
 mask.style.cursor = "bewegen";

Beachten:

① Legen Sie die Bewegungskoordinaten des großen Bildes entsprechend der Proportion der Bewegung fest. ② Die Bewegungskoordinaten des großen Bildes = der Versatz der Abdeckung * die maximale Bewegungsdistanz des großen Bildes / die maximale Bewegungsdistanz der Abdeckung ③ ? = Versatz * (Breite des Bildes - Breite der großen Box) / maskMax

// Maximale Verschiebungsdistanz des großen Bildes in der großen Box var bigImgMax = bigImg.offsetWidth - bigBox.offsetWidth;
// Linker Wert des großen Bildes var bigImgX = mask.offsetLeft * bigImgMax / maskMax;
// Oberer Wert des großen Bildes var bigImgY = mask.offsetTop * bigImgMax / maskMax;
 // Die Bewegungsrichtung des Overlays ist entgegengesetzt zu der des großen Bildes, daher sollte hier ein negativer Wert angegeben werden bigImg.style.left = -bigImgX + "px";
 bigImg.style.top = -bigImgY + "px";

 }
 }

Markierung ist eine Lupe (gelber Teil)

<div Klasse="Box">
 <img src="../img/small.jpg" alt="">
<div Klasse="Maske">
</div>
<div Klasse="bigBox">
 <img src="../img/big.jpg" alt="">
</div>

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • JavaScript realisiert Lupen-Spezialeffekte
  • JavaScript imitiert die Spezialeffekte der Jingdong-Lupe
  • Realisierung von Lupeneffekten auf Basis von Javascript
  • JS realisiert den Lupeneffekt der E-Commerce-Produktanzeige
  • Beispiel für Spezialeffekte mit Lupe, implementiert durch natives JS [Test verfügbar]
  • js, um Lupeneffekte zu erzielen
  • Native JS einfache Implementierung von Lupeneffekten
  • Implementierungsprozess des Lupeneffekts im Javascript-Beispielprojekt

<<:  MySQL-Abfragedaten aus einer Tabelle und Einfügen in eine andere Tabellenimplementierungsmethode

>>:  CentOS 7: Beispielcode zum Festlegen des Grub-Passworts und zur Einzelbenutzeranmeldung

Artikel empfehlen

Implementierung der MySQL8.0.11-Datenverzeichnismigration

Das Standardspeicherverzeichnis von MySQL ist /va...

Verschieben Sie die MySQL-Datenbank unter Windows auf eine andere Festplatte

Vorwort Heute habe ich MySQL installiert und fest...

js Drag & Drop-Tabelle zur Realisierung der Inhaltsberechnung

In diesem Artikelbeispiel wird der spezifische Co...

Ein tiefer Einblick in JavaScript-Promises

Inhaltsverzeichnis 1. Was ist Promise? 2. Warum g...

Methode der Toolbibliothek zur Generierung von Vue-Komponentendokumenten

Inhaltsverzeichnis Analysieren von VUE-Dateien Do...

Lösungen für das Problem der Erstellung von XHTML- und CSS-Webseiten

Die Lösungen für die Probleme, die bei der Erstell...

Shell-Skript zur Überwachung des MySQL-Master-Slave-Status

Geben Sie ein Shell-Skript unter Linux frei, um d...

Tipps zum reflektierenden Lernen von JavaScript

Inhaltsverzeichnis 1. Einleitung 2. Schnittstelle...

Verwenden Sie CSS, um die Breite von INPUT in TD festzulegen

Als ich kürzlich mit C# ein Webprogramm erstellte,...

Detaillierte Erläuterung der MySQL SQL-Anweisungsanalyse und Abfrageoptimierung

So erhalten Sie SQL-Anweisungen mit Leistungsprob...

MySQL 5.6-Binärinstallationsprozess unter Linux

1.1 Download des binären Installationspakets wget...