In diesem Artikel wird der spezifische Code für JavaScript zur Erzielung des Lupeneffekts zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt Der diesmal erzielte Effekt ist wie folgt: Dieser Fall ist etwas schwierig und erfordert mehr Nachdenken über CSS und JS. Lassen Sie uns ohne weitere Umschweife loslegen~ 1. Zuerst müssen wir mit HTML und CSS das Gesamtlayout planen, also zwei nebeneinander liegende Boxen A und B und eine kleine Box S in der linken Box A. Um eine Nachbarschaft zu erreichen, habe ich die Methode gewählt 2. Dann müssen wir js verwenden, um den Animationseffekt einzustellen, d. h.: Wenn die Maus auf Feld A platziert wird, verschiebt sich die Position des kleinen Felds S mit der Bewegung der Maus und das Bild in Feld B wird zu einer vergrößerten Version des Bildes, das von Feld S abgedeckt wird. Wie erreicht man das? 3. Realisieren Sie zunächst die Positionsänderung des kleinen Kästchens S: Rufen Sie die Funktion 4. Machen Sie dann das Bild in Feld B zu einer vergrößerten Version des Bildes, das von Feld S abgedeckt wird: Lassen Sie uns zunächst über eine Frage nachdenken: Wie kann dieser Vergrößerungseffekt erzielt werden? Aus meiner Sicht der Implementierung muss für Feld B zuerst ein Hintergrundbild == das Bild in Feld A sein und dieses dann um ein bestimmtes Vielfaches x vergrößert werden. Wenn sich Feld S bewegt, ändere 5. Und schließlich : Was sind die Werte von x und y? (Unter der Annahme, dass S, A und B alle im gleichen Verhältnis zueinander stehen) x : Der Faktor, um den Feld B vergrößert wird, sollte der Größe von A geteilt durch die Größe von S entsprechen, damit der gleiche Bildbereich erreicht werden kann. y : Die Änderung der Distanz, wenn B sich bewegt, sollte der Distanz entsprechen, um die sich Box S bewegt * (die Größe von Box B geteilt durch die Größe von S). Du kannst mehr denken ~ Vielleicht ist mein Implementierungsprozess kompliziert. Wenn Ihnen eine bessere Möglichkeit einfällt, hinterlassen Sie bitte eine Nachricht. Der Code lautet wie folgt: <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>Dokument</title> <Stil> * { Rand: 0; Polsterung: 0; } #Kasten { Position: absolut; links: 180px; oben: 100px; } #box img { Breite: 400px; Höhe: 300px; Rand: 1px durchgezogener RGBA (255, 255, 255, 0,7); vertikale Ausrichtung: unten; } #nav { Breite: 480px; Höhe: 360px; Rand: 1px durchgezogener RGBA (255, 255, 255, 0,7); Position: absolut; links: 582px; oben: 100px; Hintergrundbild: URL (../img/morn.jpg); Hintergrundwiederholung: keine Wiederholung; Hintergrundgröße: 250 % 250 % } #klein { Breite: 160px; Höhe: 120px; Position: absolut; } </Stil> </Kopf> <Text> <div id="box"> <div id="klein"></div> <img src="../img/morn.jpg" alt=""> </div> <div id="nav"></div> <Skript> let box = document.getElementById("box"); lass klein = document.getElementById("klein"); let nav = document.getElementById("nav"); box.onmousemove = Funktion (Client) { lass x = Client.clientX - Box.OffsetLeft; lass y = client.clientY - box.offsetTop; klein.Stil.links = x - 80 + 'px'; klein.stil.oben = y - 60 + 'px'; let dis_x = box.offsetLeft + box.offsetWidth - client.clientX; sei dis_y = box.offsetTop + box.offsetHeight - client.clientY; nav.style.backgroundPositionX = (80 - x) * 3 + 'px'; nav.style.backgroundPositionY = (60 - y) * 3 + 'px'; wenn (x - 80 < 0) { klein.Stil.links = 0; nav.style.backgroundPositionX = 0; } wenn (dis_x <= 80) { kleiner.Stil.links = Box.OffsetWidth – 160 + „px“; nav.style.backgroundPositionX = (160 - box.offsetWidth) * 3 + 'px'; } wenn (y - 60 < 0) { klein.stil.oben = 0; nav.style.backgroundPositionY = 0; } wenn (dis_y < 60) { kleiner.Stil.oben = box.offsetHeight - 120 + 'px'; nav.style.backgroundPositionY = (120 - box.offsetHeight) * 3 + 'px'; } klein.Stil.Hintergrundfarbe = "rgba(135, 207, 235, 0,61)"; } box.onmouseout = Funktion () { small.style.backgroundColor="transparent" } </Skript> </body> </html> 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:
|
<<: W3C Tutorial (15): W3C SMIL Aktivitäten
>>: Lösung für das Problem der ungültigen Zeilenhöheneinstellung in CSS
Docker unterstützt die Ausführung auf den folgend...
1. Stellen Sie den Nginx-Dienst im Container bere...
Dieser Artikel enthält einige häufig verwendete U...
1. Einführung in MMM: MMM steht für Multi-Master ...
Inhaltsverzeichnis Frontend Entwerfen und schreib...
NERDTree ist ein Dateisystembrowser für Vim. Mit ...
Redis ist eine Open-Source-NoSQL-Datenbank, die i...
Dieser Artikel beschreibt die Installations- und ...
Früher habe ich zur Handhabung dieser Art von Nut...
Installieren Sie ZLMediaKit auf centos6 Der Autor...
XHTML definiert drei Dokumenttypdeklarationen. Am...
Problembeschreibung: Beim Einfügen chinesischer Z...
Inhaltsverzeichnis Problembeschreibung Was ist di...
Vorwort In diesem Artikel werden wir weitere Verw...
Hinweis 1: Lösen Sie das Problem der langsamen Ve...