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
In den vorherigen Kapiteln haben wir die Auswahl ...
Wenn Sie MySQL kennen, werden Sie feststellen, da...
Heute habe ich die MySQL-Datenbank erneut auf mei...
Inhaltsverzeichnis Unkontrollierte Komponenten Ko...
Einfaches Beispiel für die Verschönerung von HTML...
Vue $set Array-Sammlungsobjektzuweisung In der be...
Installieren Sie pymysql pip install pymysql 2|0V...
1. Problembeschreibung root@mysqldb 22:12: [xucl]...
Ich verwende tengine, das Installationsverzeichni...
In Sprachen werden häufig Makros zur Implementier...
Inhaltsverzeichnis 0x01. Installieren Sie das Pag...
Vorwort Die Lösung für das Problem, dass Elemente...
Inhaltsverzeichnis 1. Was ist der Lebenszyklus 2....
Die folgende Demonstration basiert auf MySQL Vers...
Deklarieren von Variablen Festlegen globaler Vari...