In diesem Artikelbeispiel wird der spezifische Code von Vue3 zur Erzielung des Bildlupeneffekts als Referenz geteilt. Der spezifische Inhalt ist wie folgt Ergebnisse erzielen Code <Vorlage> <div Klasse="Warenbild"> <!-- Großer Bildcontainer --> <div Klasse="groß" :Stil="[ { Hintergrundbild: `url(${imageList[curId]})`, HintergrundPositionX: Position.HintergrundPositionX, HintergrundPositionY: position.HintergrundPositionY, }, ]" v-if="istAnzeigen" ></div> <div Klasse="Mitte" ref="Ziel"> <img :src="imageList[curId]" alt="" /> <!-- Maskencontainer --> <div Klasse = "Ebene" :style = "{ links: links + 'px', oben: oben + 'px' }" v-if = "isShow"></div> </div> <ul Klasse="klein"> <li v-for="(img, i) in Bildliste" :Schlüssel="i" @mouseenter="aktuelleId = i" :Klasse="{ aktiv: curId === i }" > <img :src="img" alt="" /> </li> </ul> </div> </Vorlage> <Skript> importiere { reaktiv, ref, watch } von 'vue' importiere { useMouseInElement } von '@vueuse/core' Standard exportieren { Name: 'Warenbild', Requisiten: { Bildliste: { Typ: Array, Standard: () => { zurückkehren [] } } }, aufstellen () { const curId = ref(0) const Ziel = ref(null) // elementX: der Offsetwert der Maus von der linken Seite // elementY: der Offsetwert der Tabelle von oben // isOutside: ob es außerhalb des Containers liegt (true für außerhalb und false für innerhalb) const { elementX, elementY, istAußen } = useMouseInElement(Ziel) const left = ref(0) // Der Abstand vom Schieberegler nach links const top = ref(0) // Der Abstand vom Schieberegler nach oben const isShow = ref(false) // Großes Bild und Maskenbild ein- und ausblenden const position = reactive({ // Die Position der großen Bildanzeige, der Standardwert ist 0 HintergrundPositionX: 0, HintergrundPositionY: 0 }) betrachten( //Überwachungsobjekt [elementX, elementY, isOutside], () => { wenn (elementX.wert < 100) { // Minimaler Abstand nach links left.value = 0 } wenn (elementX.value > 300) { linker Wert = 200 } wenn (elementX.value > 100 und elementX.value < 300) { linker.Wert = elementX.Wert - 100 } wenn (elementY.value < 100) { // Mindestabstand links top.value = 0 } wenn (elementY.value > 300) { Spitzenwert = 200 } wenn (elementY.value > 100 und elementY.value < 300) { top.value = elementY.value - 100 } // Bewegung des Hintergrundbildes steuern // 1. Die Bewegungsrichtung der Maskenebene ist entgegengesetzt zu der des Hintergrundbildes // 2. Da das Flächenverhältnis von Maskenebene und Hintergrundbild 1:2 beträgt, bewegt sich das Hintergrundbild für jedes Pixel, um das sich die Maskenebene bewegt, um zwei Pixel // backgrondPosition: x, y; position.backgroundPositionX = -left.value * 2 + 'px' position.backgroundPositionY = -top.value * 2 + 'px' // Wenn sich der Wert von isOutside ändert, negiere ihn sofort und weise ihn isShow zu // isOutside: Liegt es außerhalb des Containers? True für außerhalb und false für innerhalb istShow.value = !istOutside.value }, {} ) zurückkehren { aktuell, Ziel, links, Spitze, Position, istAnzeigen } } } </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:
|
<<: Detaillierte Erläuterung gängiger Vorgänge für Docker-Images und -Container
Inhaltsverzeichnis Warum benötigen Datenbanken In...
Inhaltsverzeichnis 1. Einleitung 1.1 Grundsatz 1....
Inhaltsverzeichnis 1. Übersicht 2. Attribute 1. M...
Vorwort Während des Schreibens des Codes werden w...
1. Die Rolle des Index Im Allgemeinen entspricht ...
Inhaltsverzeichnis Vorwort Aufgabenliste tun Sie ...
Inhaltsverzeichnis Eröffnungsszene Direktes Rende...
Als er über die Seite zur Bedienung der Bildschir...
Herkunft Zurzeit arbeite ich an Anforderung A, in...
Inhaltsverzeichnis Implementierung einer unregelm...
Inhaltsverzeichnis Hintergrund 1. Die Abfragebedi...
1. Blockebenenelement: bezieht sich auf die Fähigk...
Alle Tags müssen klein geschrieben sein In XHTML m...
Suchen Sie das Installationsverzeichnis von Virtu...
Gelegentlich werden Sie in den Daten Zeichen wie ...