CSSによる3D表現の基礎

goto_jp 543views 更新:2014年5月29日

サンプルはこちら。

See the Pen klsHB by Kazuyoshi Goto (@KazuyoshiGoto) on CodePen.

CSSアニメーションを利用することで3D表現も可能です。

CSS(Sass)

body {
  background: #000;
  @include perspective(500px);
}
div {
  position: absolute;
  width: 200px;
  height: 200px;
  border: solid 1px #fff;
  background-color: rgba(#fff,.2);
  @include border-radius(50%);
}
.box1 {
  @include animation(rotate 2s 0s infinite linear);
}
.box2 {
  @include animation(rotate 2s .25s infinite linear);
}
.box3 {
  @include animation(rotate 2s .5s infinite linear);
}
.box4 {
  @include animation(rotate 2s .75s infinite linear);
}
@-webkit-keyframes rotate {
  0% {@include transform(rotateY(0));}
   100% {@include transform(rotateY(360deg));}
}

ちょっと長いので要点のみ抜粋しています。

3D状に見せるキモの部分はbodyに適用させている「perspective」で、今回は500px分の奥行きを用意しています。

それに対し、box1~4に「rotate」のアニメーションを0.25秒ずつディレイをかけて適用させています。
その「rotate」はY軸で360度回転するアニメーションになっています。

奥行きを付け軸回転を行うことで擬似的な3D表現を行っています。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません