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

Verwenden von Zabbix zum Überwachen des Ogg-Prozesses (Windows-Plattform)

Dieser Artikel stellt vor, wie man das Ogg-Progra...

Detaillierte Erläuterung der häufig verwendeten Filter von Tomcat

Inhaltsverzeichnis 1. Domänenübergreifender Filte...

So implementieren Sie Bildmapping mit CSS

1. Einleitung Mit Imagemaps können Sie Bereiche e...

Vue verwendet Monaco, um Codehervorhebung zu erreichen

Mithilfe der Vue-Sprache und Elementkomponenten m...

So verwenden Sie Docker, um Containerressourcen zu begrenzen

Problem beim Gucken Angenommen, der IIS-Dienst st...

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

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

Detaillierte Erläuterung der drei Möglichkeiten zum Importieren von CSS-Dateien

Es gibt drei Möglichkeiten, CSS einzuführen: Inli...

Docker-Container greift auf MySQL-Operationen des Hosts zu

Hintergrund: Es gibt ein Flask-Projekt, das eine ...

So verwenden Sie webSocket zum Aktualisieren des Echtzeitwetters in Vue

Inhaltsverzeichnis Vorwort Informationen zu WebSo...

Einführung in das Methodenattribut des Formularformulars in HTML

1 Methode ist eine Eigenschaft, die angibt, wie Da...

MySQL fängt die SQL-Anweisung der String-Funktion ab

1. left(name,4) fängt die 4 Zeichen auf der linke...

Die Umsetzung von Youdas neuem Petite-Vue

Inhaltsverzeichnis Vorwort Einführung Live Einfac...