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
Inhaltsverzeichnis Grundtypen jeder Typ Arrays Tu...
LEMP (Linux + Nginx + MySQL + PHP) ist heutzutage...
Nginx-Lastausgleichsserver: IP: 192.168.0.4 (Ngin...
1. Einleitung Unsere realen Server sollten nicht ...
IFNULL(Ausdruck1,Ausdruck2) Wenn expr1 nicht NULL...
Tomcat CentOS-Installation Dieses Installationstu...
Handlungsüberblick Im vorherigen Artikel haben wi...
Als ich kürzlich die Zabbix-Datenbank von MySQL 5...
Frage Im vorherigen Artikel zur domänenübergreife...
Installieren Sie ZLMediaKit auf centos6 Der Autor...
Ich habe das System vor einiger Zeit neu installi...
Rand paralleler Boxen (Überlappung doppelter Ränd...
Inhaltsverzeichnis Schritt 1: Pakete unter CentOS...
Vorwort Dies ist eine Untersuchung, die durch die...
Laden Sie MySQL für Mac herunter: https://downloa...