Heim  >  Artikel  >  Web-Frontend  >  Code-Sharing für die Implementierung von CSS-Zoom-Animationen

Code-Sharing für die Implementierung von CSS-Zoom-Animationen

小云云
小云云Original
2018-02-02 10:49:511919Durchsuche

Ich arbeite kürzlich an einer Anmeldeseite für ein Unternehmen. Ich hoffe, dass das Drittanbieter-Anmeldesymbol einen kreisförmigen Skalierungseffekt hat (das ursprüngliche Wort ist ein Welleneffekt -_-||). und NetEase News für den Effekt-Share-Button.

Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zur einfachen Implementierung der CSS-Zirkularzoomanimation vor. Jetzt werde ich ihn mit Ihnen teilen und Ihnen hoffentlich eine Referenz geben Dir helfen.

Tencent News-Share-Button-Hover-Effekt (Nachrichtenseite):

NetEase News-Share-Button-Hover-Effekt (News-Seite):

Ich habe mir den Quellcode dieser beiden Seiten angesehen, hauptsächlich mit transform:scale() und Transition. Mein endgültiger Implementierungseffekt ist wie folgt:

Die Implementierungsidee wird im Allgemeinen von NetEase News nachgeahmt. Das Layout ist wie folgt:


<a href="" class="third-party third-party-weixin">
     <i></i>
     <span></span>
 </a>

Das äußere a-Tag wird für den Gesamtcontainer und den Sprung verwendet innere Ebene Das i-Tag verwendet die Pseudoelemente::before und ::after als Hintergrundfarbe bzw. Vordergrundfarbe. Diese beiden Pseudoelemente sind absolut positioniert, vertikal und horizontal zentriert, und ::after legt das Skalierungsattribut transform:scale fest (0) und das Übergangsanimationsattribut „transition: all .3s“ ist beim Schweben sichtbar: „after“ setzt das Skalierungsattribut „transform:scale(1)“ nicht -index, das folgende Element befindet sich oben und der Skalierungsanimationseffekt wird mit dem Übergangsanimationsattribut implementiert. Das

span-Tag wird zur Anzeige des Logos verwendet, das ein Bild oder eine Webschrift sein kann. Sofern es transparent ist, wird hier ein Bild verwendet. Das CSS (hier wird Sass verwendet) lautet wie folgt:


.third-party {
    position: relative;
    // 为了兼容firefox必须要变成block或inline-block
    display: inline-block;
    width: 48px;
    height: 48px;
    margin: {
        left: 6%;
        right: 6%;
    }
    &:hover {
        i {
            &::after {
                transform: scale(1);
            }
        }
    }
    span {
        // position: relative是为了兼容firefox和IE
        position: relative;
        display: block;
        width: 48px;
        height: 48px;
        background-size: 30px;
        background-position: center;
        background-repeat: no-repeat;
    }
    i {
        position: absolute;
        top: 0;
        left: 0;
        width: 48px;
        height: 48px;
        &::before {
            content: &#39;&#39;;
            border-radius: 50%;
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
        }
        &::after {
            content: &#39;&#39;;
            transition: all .3s;
            border-radius: 50%;
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            transform: scale(0);
        }
    }
    &.third-party-weixin {
        span {
            background-image: url(../images/login/weixin-64.png);
        }
        i {
            &::before {
                background-color: #20a839;
            }
            &::after {
                background-color: #30cc54;
            }
        }
    }
}

Auf diese Weise ist diese einfache kreisförmige Skalierungsanimation abgeschlossen.

Verwandte Empfehlungen:

AngularJS-Imitation des WeChat-Bildgesten-Skalierungscodes

jQuery implementiert die Mausradsteuerung der Bildskalierung

Detaillierte Lösung für das Skalierungsproblem der mobilen HTML5-Seite

Das obige ist der detaillierte Inhalt vonCode-Sharing für die Implementierung von CSS-Zoom-Animationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn