In einem großen Kästchen befindet sich ein Bild. Wenn Sie mit der Maus darauf zeigen, wird eine halbtransparente Maskenebene angezeigt. Wenn Sie die Maus bewegen, bewegt sich die Maskenebene mit. Neben dem Kästchen befindet sich außerdem ein vergrößertes Bild. Die Position des vergrößerten Bildes ändert sich mit der Position der Maskenebene. Wenn die Maus das große Kästchen verlässt, verschwinden die Maskenebene und das vergrößerte Bild. Umsetzungsideen 1. Bearbeiten Sie die Box, die Maskenebene und die vergrößerte Bildseite in HTML und CSS und legen Sie fest, dass die Maskenebene und das vergrößerte Bild standardmäßig ausgeblendet werden Hinweis: Der Versatz des vergrößerten Bildes erhält einen negativen Wert, der der Bewegungsrichtung der Maskenebene entgegengesetzt ist. Codebeispiel<!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>Seite mit Mobiltelefondetails</title> <!-- <link rel="stylesheet" href="css/detail.css" > <script src="js/detail.js"></script> --> <Stil> * { Rand: 0; Polsterung: 0; } .detail-inhalt { Breite: 1200px; Rand: 0 automatisch; } img { Rand: 0; vertikale Ausrichtung: Mitte; } .vorschau_img { Position: relativ; Breite: 400px; Höhe: 400px; Rand oben: 30px; Rand: 1px durchgezogen #ccc; } .preview_img img { Breite: 100 %; Höhe: 100%; } .Maske { Anzeige: keine; Position: absolut; oben: 0; links: 0; Breite: 300px; Höhe: 300px; Hintergrundfarbe: rosa; Deckkraft: .5; Cursor: bewegen; } .groß { Anzeige: keine; Position: absolut; oben: 0; links: 410px; Breite: 500px; Höhe: 500px; Rand: 1px durchgezogen #ccc; Hintergrundfarbe: rosa; Z-Index: 999; Überlauf: versteckt; } .bigimg { Position: absolut; oben: 0; links: 0; Breite: 800px; Höhe: 800px; } </Stil> </Kopf> <Text> <div Klasse="Detail-Inhalt"> <div Klasse="Vorschaubild"> <img src="upload/s3.png" alt=""> <div Klasse="Maske"></div> <div Klasse="groß"> <img src="upload/big.jpg" alt="" class="bigImg"> </div> </div> </div> <Skript> var previewImg = document.querySelector('.preview_img'); var mask = document.querySelector('.mask'); var big = document.querySelector('.big'); var bigImg = document.querySelector('.bigImg'); // Mouseover-Box-Ereignis previewImg.addEventListener('mouseover', function() { // Okklusionsebene und vergrößerte Bildanzeige festlegen mask.style.display = 'block'; großer.Stil.Anzeige = "Block"; }) // Maus verlässt das Box-Event previewImg.addEventListener('mouseout', function() { // Stellen Sie die Okklusionsebene und das vergrößerte Bild ein, um es auszublenden mask.style.display = 'none'; big.style.display = "keine"; }) // Maus bewegt sich im Feld previewImg.addEventListener('mousemove', function(e) { // Position der Maus im Feld abrufen var x = e.pageX - this.offsetLeft; var y = e.pageY - this.offsetTop; // Berechnen Sie den Bewegungswert der Okklusionsebene und platzieren Sie die Maus in der Mitte der Okklusionsebene. var maskX = x - mask.offsetWidth / 2; var maskY = y - mask.offsetHeight / 2; // Die Box ist quadratisch, daher wird nur der maximale horizontale Bewegungswert auf der X-Achse berechnet. Der maximale Bewegungswert auf der Y-Achse entspricht der X-Achse var maskMax = previewImg.offsetWidth - mask.offsetWidth; // Beschränke die Bewegung der Okklusionsebene innerhalb der Box, wenn (maskX <= 0) { MaskeX = 0; } sonst wenn (MaskeX >= MaskeMax) { MaskeX = MaskeMax; } wenn (MaskeY <= 0) { MaskeY = 0; } sonst wenn (MaskeY >= MaskeMax) { MaskeY = MaskeMax; } mask.stil.links = maskX + 'px'; mask.style.top = maskY + 'px'; // Berechnen Sie den maximalen Bewegungswert des vergrößerten Bildes, der horizontale Bewegungswert des großen Bildes = der Bewegungswert der Okklusionsebene * die maximale Bewegungsdistanz des großen Bildes / die maximale Bewegungsdistanz der Okklusionsebene var bigMax = bigImg.offsetWidth - big.offsetWidth; var bigX = MaskeX * bigMax / MaskeMax; var bigY = maskY * bigMax / maskMax; bigImg.style.left = -bigX + 'px'; bigImg.style.top = -bigY + 'px'; }) </Skript> </body> </html> Seiteneffekt: 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:
|
<<: Analyse der MySql-Indexnutzungsstrategie
>>: Analyse des Implementierungsprozesses der Docker-Container-Orchestrierung
Inhaltsverzeichnis 1. Grundtypen 2. Objekttyp 2.1...
Verwenden Sie den Befehl wget, um das gesamte Unt...
Überblick: Das Dateisystemmodul ist ein einfacher...
Ich habe die vorherigen Hinweise zur Installation...
Hintergrund: Tablespace: Alle INNODB-Daten werden...
Der Befehl tee wird hauptsächlich verwendet, um d...
CocosCreator-Version: 2.4.2 Praktische Projektanw...
In diesem Artikel erfahren Sie, wie Sie mit Vue e...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort „Wenn es um Bildbearbeitung geht, denken ...
Wie unten dargestellt: Ersetzen Sie es einfach, w...
Dieser Artikel stellt Ihnen ein einfaches HTML-Ap...
Da myeclipse2017 und idea2017 auf dem Computer in...
Lassen Sie uns nun mehrere Situationen zur Steuer...