Heim  >  Artikel  >  Web-Frontend  >  CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)

CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)

青灯夜游
青灯夜游Original
2018-11-09 16:53:593436Durchsuche

Der Inhalt dieses Artikels ist die Verwendung von CSS + JS, um einen einfachen Fade-Folien-Animationseffekt zu erzielen (mit Code). Ich hoffe, dass er für Sie hilfreich ist. .

Im Folgenden implementieren wir den Animationseffekt der vertikalen Drehung der Folie Schritt für Schritt durch den Code:

1. Erstellen Sie eine HTML-Datei und schreiben Sie eine Demo

Zuerst müssen wir eine Liste von Bildern auf der Seite einrichten, die in einer Div-Box enthalten ist. Ähnlich wie folgt:

<div id="stage">
	<div id="rotator" style="-webkit-animation-name: rotator; -moz-animation-name: rotator;">
		<a href="1.jpg"><img  src="img/1.jpg"    style="max-width:90%"  style="max-width:90%" alt="CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)" ></a>
		<a href="2.jpg"><img  src="img/2.jpg"    style="max-width:90%"  style="max-width:90%" alt="CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)" ></a>
		<a href="3.jpg"><img  src="img/3.jpg"    style="max-width:90%"  style="max-width:90%" alt="CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)" ></a>
		<a href="4.jpg"><img  src="img/4.jpg"    style="max-width:90%"  style="max-width:90%" alt="CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)" ></a>
		<a href="5.jpg"><img  src="img/5.jpg"    style="max-width:90%"  style="max-width:90%" alt="CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)" ></a>
		<a href="6.jpg"><img  src="img/6.jpg"    style="max-width:90%"  style="max-width:90%" alt="CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)" ></a>
		<a href="7.jpg"><img  src="img/7.jpg"    style="max-width:90%"  style="max-width:90%" alt="CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)" ></a>
		<a href="8.jpg"><img  src="img/8.jpg"    style="max-width:90%"  style="max-width:90%" alt="CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)" ></a>
	</div>
</div>

Das Inline-Style-Attribut @keyframes verweist auf die Animation unten. Es muss Inline statt CSS sein, damit wir die Animation mithilfe von JavaScript stoppen und neu starten können.

2. Verwenden Sie CSS, um Bilder zu überlagern und Fotos im 3D-Raum anzuordnen.

Der CSS-Stil wird verwendet, um mehrere Fotos so zu positionieren, dass die Fotos vertikal wechseln.

  #stage {
    margin: 5em auto 1em 50%;
    height: 240px;
    -webkit-perspective: 1200px;
    -webkit-perspective-origin: 0 90px;
    -moz-perspective: 1200px;
    -moz-perspective-origin: 0 90px;
    -ms-perspective: 1200px;
    -ms-perspective-origin: 0 90px;
  }

  #rotator a {
    position: absolute;
    left: -151px;
    -moz-transform-style: preserve-3d;
  }
  #rotator a img {
    padding: 10px;
    border: 1px solid #ccc;
    background: #fff;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
  }

  #rotator a:nth-of-type(1) img {
    -webkit-transform: rotateX(-90deg) translateZ(100px);
    -moz-transform: rotateX(-90deg) translateZ(100px);
    -ms-transform: rotateX(-90deg) translateZ(100px);
  }
  #rotator a:nth-of-type(2) img {
    -webkit-transform: translateZ(100px);
    -moz-transform: translateZ(100px);
    -ms-transform: translateZ(100px);
  }
  #rotator a:nth-of-type(3) img {
    -webkit-transform: rotateX(90deg) translateZ(100px);
    -moz-transform: rotateX(90deg) translateZ(100px);
    -ms-transform: rotateX(90deg) translateZ(100px);
  }
  #rotator a:nth-of-type(n+4) { display: none; }

3. Animationseffekte hinzufügen

3D-Umschalteffekt erzielen

  @-webkit-keyframes rotator {
    from { -webkit-transform: rotateX(0deg);  }
    to   { -webkit-transform: rotateX(90deg); }
  }
  @-moz-keyframes rotator {
    from { -moz-transform: rotateX(0deg);  }
    to   { -moz-transform: rotateX(90deg); }
  }
  @-ms-keyframes rotator {
    from { -ms-transform: rotateX(0deg);  }
    to   { -ms-transform: rotateX(90deg); }
  }

  #rotator {
    -webkit-transform-origin: 0 101px;
    -webkit-transform-style: preserve-3d;
    -webkit-animation-timing-function: cubic-bezier(1, 0.2, 0.2, 1);
    -webkit-animation-duration: 2s;
    -webkit-animation-delay: 1s;
    -moz-transform-origin: 0 101px;
    -moz-transform-style: preserve-3d;
    -moz-animation-timing-function: cubic-bezier(1, 0.2, 0.2, 1);
    -moz-animation-duration: 2s;
    -moz-animation-delay: 1s;
    -ms-transform-origin: 0 101px;
    -ms-transform-style: preserve-3d;
    -ms-animation-timing-function: cubic-bezier(1, 0.2, 0.2, 1);
    -ms-animation-duration: 2s;
    -ms-animation-delay: 1s;
  }
  #rotator:hover {
    -webkit-animation-play-state: paused;
    -moz-animation-play-state: paused;
    -ms-animation-play-state: paused;
  }

4. Animationscontroller mit JavaScript hinzufügen

  document.addEventListener("DOMContentLoaded", function() {

    var rotateComplete = function(e) {
      with(target.style) {
        webkitAnimationName = MozAnimationName = msAnimationName = "";
      }
      target.insertBefore(arr[arr.length - 1], arr[0]);
      setTimeout(function(el) {
        with(el.style) {
          webkitAnimationName = MozAnimationName = msAnimationName = "rotator";
        }
      }, 0, target);
    };

    var target = document.getElementById("rotator");
    var arr = target.getElementsByTagName("a");

    target.addEventListener("webkitAnimationEnd", rotateComplete, false);
    target.addEventListener("animationend", rotateComplete, false);
    target.addEventListener("MSAnimationEnd", rotateComplete, false);

  }, false);

5. Effektanzeige

CSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code)

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er kann hilfreich sein Jedem Lernen hilft.

Empfohlene verwandte Artikel:

CSS zur Realisierung einer dreidimensionalen, rotierenden, unendlichen Karussellanimation

So fügen Sie mit CSS+ Text zu Folien hinzu js ? Implementieren Sie den Rotationswechsel von Folien

Das obige ist der detaillierte Inhalt vonCSS + JS realisiert den Folienanimationseffekt zum Umschalten der vertikalen Drehung (mit Code). 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