Vue implementiert einen einfachen Lupeneffekt

Vue implementiert einen einfachen Lupeneffekt

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Erzielung eines einfachen Lupeneffekts als Referenz geteilt. Der spezifische Inhalt ist wie folgt

<Vorlage>
    <div>
        <div Klasse="imgMerror">
            <div class="smallDiv" @mousemove="bewegen($event)" @mouseenter="eingeben()" @mouseleave="verlassen()">
                <img src="/image/2017/07/26/0d6069de4916471b92da66b0da8f0ec9.jpg" alt="">
                <div Klasse="imgMask"></div>
            </div>
            <div Klasse="großesDiv">
                <img src="/image/2017/07/26/0d6069de4916471b92da66b0da8f0ec9.jpg" alt="" class="bigImg">
            </div>
        </div>
    </div>
</Vorlage>
<Skript>
Standard exportieren {
    Daten() {
        zurückkehren {
            
        }
    },
    Methoden: {
        eingeben(){
            let imgMaskDom = document.querySelector('.imgMask');
            let bigDivDom = document.querySelector('.bigDiv');
            imgMaskDom.style.display = "Block";
            bigDivDom.style.display = "Block";
        },
        verlassen(){
            let imgMaskDom = document.querySelector('.imgMask');
            let bigDivDom = document.querySelector('.bigDiv');
            imgMaskDom.style.display = "keine";
            bigDivDom.style.display = "keine";
        },
        bewegen(e){
            let smallDivDom = document.querySelector('.smallDiv');
            let imgMaskDom = document.querySelector('.imgMask');
            let bigDivDom = document.querySelector('.bigDiv');
            let bigImgkDom = document.querySelector('.bigImg');
 
            sei ev = e || Fenster.Ereignis;
            let left = ev.clientX - smallDivDom.offsetLeft - imgMaskDom.offsetWidth/2;
            let top = ev.clientY - smallDivDom.offsetTop - imgMaskDom.offsetHeight/2;
            wenn (links < 0) links = 0;
            wenn (links > smallDivDom.offsetWidth - imgMaskDom.offsetWidth) {
                links = smallDivDom.offsetWidth - imgMaskDom.offsetWidth;
            }
            wenn (oben < 0) oben = 0;
            wenn(oben > smallDivDom.offsetHeight - imgMaskDom.offsetHeight){
                oben = smallDivDom.offsetHeight - imgMaskDom.offsetHeight;
            }
            imgMaskDom.style.left = links + "px";
            imgMaskDom.style.top = oben + 'px';
 
            //Proportion verschieben let precentX = left / (smallDivDom.offsetWidth-imgMaskDom.offsetWidth);
            sei precentY = oben / (smallDivDom.offsetHeight - imgMaskDom.offsetHeight);
            bigImgkDom.style.left = precentX * (bigDivDom.offsetWidth - bigImgkDom.offsetWidth) + 'px';
            bigImgkDom.style.top = precentY * (bigDivDom.offsetHeight - bigImgkDom.offsetHeight) + 'px';
 
        }
    },
}
</Skript>
 
<style lang="scss">
    *{
        Rand: 0;
        Polsterung: 0;
    }
    .imgMerror{
        Position: relativ;
        Polsterung: 50px;
        .smallDiv{
            Rand: 1px durchgezogen #ccc;
            Breite: 360px;
            Höhe: 360px;
            Position: relativ;
            links: 0;
            oben: 0;
            img{
                Breite: 100 %;
                Höhe: 100%;
            }
            .imgMask{
                Breite: 240px;
                Höhe: 240px;
                Hintergrund: #00ff98;
                Deckkraft: 0,5;
                Cursor: bewegen;
                Position: absolut;
                links: 0;
                oben: 0;
                Anzeige: keine;
            }
        }
        .bigDiv{
            Rand: 1px durchgezogen #ccc;
            Breite: 540px;
            Höhe: 540px;
            Position: relativ;
            links: 380px;
            oben: -360px;
            Überlauf: versteckt;
            Anzeige: keine;
            img{
                Breite: 600px;
                Höhe: 600px;
                Position: absolut;
                links: 0;
                oben: 0;
            }
        }
    }
</Stil>

Effektbild:

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:
  • Vue realisiert den Produktlupeneffekt
  • Beispielcode einer in Vue3 gekapselten Lupenkomponente
  • Vue3 realisiert den Bildlupeneffekt
  • Vue implementiert die Lupenfunktion der Produktdetailseite
  • Vue implementiert den Lupeneffekt beim Tab-Umschalten
  • Vue implementiert ein Suchfeld mit einer Lupe
  • Vue3.0 Handschrift-Lupeneffekt
  • Vue implementiert Lupeneffekt
  • Ein handgeschriebener Vue-Lupeneffekt
  • Vue3 kapselt die Lupeneffektkomponente der Jingdong-Produktdetailseite

<<:  Linux verwendet Rsync + Inotify, um eine Echtzeitsynchronisierung lokaler und Remotedaten zu erreichen

>>:  Detaillierte Erläuterung von Beispielen zur Fehlerbehandlung in gespeicherten MySQL-Prozeduren

Artikel empfehlen

Implementierung der HTML-Befehlszeilenschnittstelle

HTML-Teil Code kopieren Der Code lautet wie folgt:...

Detaillierte Erklärung der MySQL-Datumsadditions- und -subtraktionsfunktionen

1. addtime() Füge die angegebene Anzahl Sekunden ...

So finden und löschen Sie doppelte Zeilen in MySQL

Inhaltsverzeichnis 1. So finden Sie doppelte Zeil...

So ermitteln Sie, ob das Linux-System auf VMware installiert ist

Wie kann festgestellt werden, ob das aktuelle Lin...

Lösung für den Fall, dass der Tomcat-Server tomcat7w.exe nicht öffnen kann

Beim Konfigurieren des Tomcat-Servers ist mir heu...

Erkennung und Lösung von Vue.$set-Fehlerfallen

Ich habe zufällig festgestellt, dass Vue.$set im ...

Ein Beispiel für die Verwendung von CSS-Methoden zur Erzielung von Modularität

1. Was sind CSS-Methoden? CSS methodologies könne...

Einführung in die Verschachtelungsregeln von HTML-Tags

Es gibt viele XHTML-Tags: div, ul, li, dl, dt, dd...

Detaillierte Erklärung der drei Möglichkeiten zum Festlegen von Rahmen in HTML

Drei Möglichkeiten zum Festlegen von Rahmen in HT...

js, um einen Karusselleffekt zu erzeugen

Ich denke, das Karussell ist ein relativ wichtige...

So erstellen Sie eine virtuelle Maschine mit Vagrant+VirtualBox

1. Einleitung Vagrant ist ein Tool zum Erstellen ...

XHTML-Tutorial für den Einstieg: Häufig verwendete XHTML-Tags

<br />Genau wie ein Artikel sollten unsere W...

So zeigen Sie das MySQL-Binlog (Binärprotokoll) an

Wenn Sie beispielsweise eine neue Tabelle erstell...