In diesem Artikelbeispiel wird der spezifische Code von js zur Erzielung des Lupeneffekts als Referenz geteilt. Der spezifische Inhalt ist wie folgt Stilanzeige:IdeenBereiten Sie zunächst zwei Bilder vor, ein kleines Bild und ein großes Bild. Die beiden Bilder haben ein ganzzahliges Verhältnis Stellen Sie über dem kleinen Bild einen Lupenstil ein und stellen Sie den Hintergrund auf eine transparente Farbe ein Platzieren Sie ein übergeordnetes Element außerhalb des großen Bilds und verbergen Sie es, wenn es das übergeordnete Element überschreitet. Die Größe sollte gerade ausreichen, um den vergrößerten Teil aufzunehmen. Das Verhältnis des übergeordneten Elements zum Lupenstil entspricht dem Verhältnis des großen Bilds zum kleinen Bild. Wenn die Maus über das kleine Bild bewegt wird, werden die Koordinaten der Maus abgerufen, die Koordinaten der Maus auf dem kleinen Bild abgerufen, die Koordinaten des großen Bildes entsprechend dem entsprechenden Verhältnis berechnet und das große Bild so verschoben, dass der vergrößerte Teil innerhalb des sichtbaren Bereichs des übergeordneten Elements liegt. Code1.html Teil <div id="box"> <!-- toBig ist ein Lupenelement --> <div id="zuGroß"></div> <!-- Kleines Bild --> <img src="img/05.jpg" id="smallImg" width="800px"> </div> <div id="beBig"> <!-- Großes Bild, Verhältnis 1,5 --> <img src="img/05.jpg" id="bigImg" width="1200px"> </div> 2. CSS-Stilteil *{ Rand: 0px; Polsterung: 0px; } #Kasten{ Position: relativ; schweben: links; } #zuGroß{ Breite: 80px; Höhe: 80px; Rand: 1px durchgehend grau; Hintergrundfarbe: transparent; Position: absolut; } #seiGroß{ schweben: links; Überlauf: versteckt; Rand: 1px durchgehend grau; Position: relativ; links: 40px; oben: 325px; } #großesBild{ Position: absolut; } 3. Skriptteil <Skripttyp="text/javascript"> //Holen Sie sich das kleine Bild, das große Bild, das Lupenelement und das übergeordnete Element des großen Bildes var smallImg = document.querySelector ("#smallImg"); var bigImg = document.querySelector("#bigImg"); var toBig=document.querySelector("#toBig"); var beBig=document.querySelector("#beBig"); /*Berechnen Sie das Verhältnis von kleinen Bildern zu großen Bildern beim Laden der Seite*/ var q=0; fenster.onload = funktion(){ q=großesBild.Offsetbreite/kleinesBild.Offsetbreite; //Berechnen Sie die Größe des anzuzeigenden vergrößerten Inhalts basierend auf der Breite, Höhe und dem Verhältnis der Lupe beBig.style.width = toBig.clientWidth * q + "px"; beBig.style.height = toBig.clientHeight * q + "px"; } //Holen Sie sich die Mitte des Lupenelements und stellen Sie sicher, dass sich die Maus in der Mitte der Lupe befindet. var xCenter=toBig.clientWidth/2; var yCenter=toBig.clientHeight/2; //Flag ist ein Zeichen. Wenn die Maus gedrückt wird, ist es wahr, Sie können sich bewegen. Flag=false; toBig.onmousedown = Funktion(){ Flagge=wahr; } toBig.onmouseup = Funktion(){ Flagge=falsch; } Fenster.onmousemove=Funktion(ev){ var ev = ev || Fenster.Ereignis; //Wenn Flag wahr ist, wird das Lupenelement gedrückt und kann gezogen werden, wenn (Flag) { // Aktuelle Position der Maus abrufen und zusätzlich zum Element selbst die zu verschiebende Position berechnen var mouseX=ev.clientX,mouseY=ev.clientY; var trueX=mouseX-xCenter; //Beurteilen, ob das Lupenelement den kleinen Bildbereich überschreitet, if (trueX < smallImg.offsetLeft) { trueX = kleinesBild.offsetLeft; } wenn(trueX > smallImg.clientWidth - toBig.offsetWidth){ trueX = smallImg.ClientWidth - toBig.OffsetWidth; } var trueY=mouseY - yCenter; wenn(trueY <= smallImg.offsetTop){ trueY = kleinesBild.offsetTop; } if (trueY > smallImg.clientHeight - toBig.offsetHeight) { trueY = smallImg.clientHeight - toBig.offsetHeight; } //Kleines Bild wird nachBig.style.left = trueX + "px"; toBig.style.top = trueY + "px"; Konsole.log(trueX,trueY); // Die Position, wohin das große Bild verschoben werden soll bigImg.style.left =-(trueX * q) + "px"; bigImg.style.top = -(trueY * q) + "px"; } } </Skript> 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:
|
<<: Auszeichnungssprache – CSS-Stil für Webanwendungen
>>: Docker-Bereitstellung – Analyse des Implementierungsprozesses für RabbitMQ-Container
Hintergrund: Ich frage mich, ob Ihnen aufgefallen...
Die Docker-Veröffentlichungsmethode bietet viele ...
stat-Funktion und stat-Befehl Erklärung von [inod...
Inhaltsverzeichnis 1. Ziehen Sie das Bild 2. Ausf...
1. Die Rolle des Index Im Allgemeinen entspricht ...
Einfache Anwendungsbereitstellung 1. Verzeichniss...
Suchen Sie online nach doppelten Daten und behalt...
Dank der Entwicklung des Internets können wir die...
Der zu erzielende Effekt ist: Festes Vergrößern a...
Vorwort Die Zeichenfolgentypen der MySQL-Datenban...
Das Wechseln von Dateien ist eine gängige Operati...
Seit ich den Mac zurückgegeben habe, liegt mein u...
Inhaltsverzeichnis Private Klassenfelder in JavaS...
1. Installieren Sie Howdy: Howdy-Projektadresse s...
Die CSS3-Kategoriemenüeffekte sind wie folgt: HTM...