Heim  >  Artikel  >  Web-Frontend  >  Kleine CSS3 3D-Demo, die jeder verstehen kann

Kleine CSS3 3D-Demo, die jeder verstehen kann

高洛峰
高洛峰Original
2017-02-18 15:06:241033Durchsuche

CSS3 3D-Fallzusammenfassung

Ich habe mich kürzlich mit Webanimationen beschäftigt, daher werde ich meinen Lernprozess aufzeichnen und ihn mit allen teilen. Lassen Sie mich das Beste, was ich in letzter Zeit gemacht habe, mit Ihnen teilen Der Code besteht hauptsächlich aus HTML und CSS3, was als relativ einfach zu bezeichnen ist.

Der erste ist der HTML-Code:

Hier wird ein dreischichtiges p-HTML-Framework verwendet, und die Ebene ist sehr klar.

Der nächste Fokus liegt auf dem CSS-Code, wie man die Funktionen von CSS3 nutzt, um 3D- und Scrolling-Effekte zu erzielen, damit es immer dreidimensional aussieht.
人人都能读懂的css3 3d小demo

Das letzte ist js

Hier gibt es ein Attribut, das nicht verwendet wird transform-origin Es wird verwendet, um die Ursprungsposition des Elements zu ändern und ist nicht erforderlich eingestellt werden. Wie in der Abbildung gezeigt

  <p class="camera" id="camera">
    <p class="kuai">
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
    </p>

    <p class="kuai">
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
    </p>

    <p class="kuai">
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
    </p>

    <p class="kuai">
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
    </p>

    <p class="kuai">
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
      <p class="mian"></p>
    </p>
  </p>

In ähnlicher Weise kann es auch wie folgt eingestellt werden: transform-origin:top right (die obere rechte Ecke ist der Ursprung), transform-origin:bottom right (die untere rechte Ecke). ist der Ursprung), transform-origin:bottom left (untere linke Ecke ist der Ursprung)

Zusammenfassung
body{  background: red;}/*对于相机元素*/.camera{  perspective: 800px;/*这个属性是视距(景深),就是目测的距离*/
  width: 500px;  height: 300px;  margin: auto;  transform-style: preserve-3d;/*该属性规定如何在 3D 空间中呈现被嵌套的元素。preserve-3d子元素将保留其 3D 位置。*/}/*对于模块元素*/.kuai{  width: 100px;  height: 300px;  margin: 50px auto;  float: left;  transform-style: preserve-3d;  position: relative;  transition:transform 1s;  margin-left: -1px;}/*对于模块的每个面元素*/.kuai:nth-of-type(2)>.mian{  background-position: -100px 0;}.kuai:nth-of-type(3)>.mian{  background-position: -200px 0;}.kuai:nth-of-type(4)>.mian{  background-position: -300px 0;}.kuai:nth-of-type(5)>.mian{  background-position: -400px 0;}.kuai:nth-of-type(6)>.mian{  background-position: -500px 0;}.mian{  width: 100px;  height: 300px;  position: absolute;  font-size:100px;  text-align: center;  line-height: 300px;  transform-style: preserve-3d;  background-color: black;  backface-visibility: hidden;}.mian:nth-of-type(1){  transform: translateZ(150px);  background:url(../images/pic1.jpg) no-repeat;  background-size: 500px 100%;}.mian:nth-of-type(2){  transform: translateZ(-150px) rotateX(180deg);  background:url(../images/pic2.png) no-repeat;  background-size: 500px 100%;}.mian:nth-of-type(3){  width: 300px;  transform: rotateY(-90deg) translateZ(150px);/*3d中transform属性是关键的,它主要是靠旋转 移动 缩放来变形实现的*/}.mian:nth-of-type(4){  width: 300px;  transform: rotateY(90deg) translateZ(-50px);}.mian:nth-of-type(5){  transform: rotateX(90deg) translateZ(150px);  background:url(../images/pic3.jpg) no-repeat;  background-size: 500px 100%;}.mian:nth-of-type(6){  transform: rotateX(-90deg) translateZ(150px);  background:url(../images/pic4.jpg) no-repeat;  background-size: 500px 100%;}

Kurz gesagt, während ich CSS3 lernte, sah ich viele neue Funktionen und Ich habe gelernt, wie man sie verwendet, aber was ich sagen möchte: Egal wie wir lernen, wie man sie verwendet, wir müssen auch verstehen, warum jede Codezeile den entsprechenden Effekt erzeugt. Insbesondere für die 3D-Transformation müssen wir die 3D grundlegend verstehen Raum, um besser zu verstehen, welche Wirkung jeder seiner Attributwerte haben kann.

window.onload=function() {  var camera=document.getElementById('camera');  var kuais=camera.getElementsByClassName('kuai');  var chishu=0;  var geshu=5;
  camera.onclick=function() {
    chishu++;    for(var i=0;i<geshu;i++){
      kuais[i].style="transition:transform 1s "+100*i+"ms;transform:rotateX("+chishu*90+"deg)";
    }
  }
}
Weitere Artikel zu CSS3 3D Small Demo, die jeder verstehen kann, finden Sie auf der chinesischen PHP-Website!


人人都能读懂的css3 3d小demo

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