图片/图形

纯CSS3打造西洋镜动画特效

阿里云


这是一款效果非常炫酷的纯 CSS3 西洋镜动画特效。该西洋镜动画使用 CSS3 的帧动画和 3D transforms 来制作,在 animation 动画的 animation-timing-function 参数使用 steps 来处理,制作出类似西洋镜的连续动画效果。

HTML 结构

该 CSS3 西洋镜动画特效的效果类似于一个旋转木马,它的 HTML 结构使用一个<div>元素来包裹一组用于展示的空的<div>元素。

也想出现在这里?联系我们
创客主机
  1. <div id="zoetrope">
  2.   <div></div>
  3.   <div></div>
  4.   <div></div>
  5.   <div></div>
  6.   <div></div>
  7.   <div></div>
  8.   <div></div>
  9.   <div></div>
  10.   <div></div>
  11.   <div></div>
  12.   <div></div>
  13.   <div></div>
  14. </div>

CSS 样式

在这个 CSS3 西洋镜动画特效中,整个被设置了透视效果,并且在西洋镜#zoetrope 元素和它的子元素上都使用了 transform-style: preserve-3d;来制作 3D 效果,由于 IE 浏览器不支持这个属性,所以在 IE 浏览器中看不到效果。

  1. body {
  2.   perspective: 500px;
  3.   perspective-origin: 50% 30%;
  4.   font-family: 'Open Sans', sans-serif;
  5.   font-size: 16px;
  6.   background: #E3DFD2;
  7.   color: #585247;
  8.   overflow: hidden;
  9. }
  10. #zoetrope {
  11.   position: relative;
  12.   width: 900px;
  13.   height: 111px;
  14.   margin: 100px auto;
  15.   transform-style: preserve-3d;
  16.   animation: zoetrope 3s steps(35) infinite;
  17. }
  18. #zoetrope div {
  19.   position: absolute;
  20.   width: 100px;
  21.   height: 111px;
  22.   left: calc(50% - 50px);
  23.   bottom: 50%;
  24.   transform-origin: 50% 0;
  25.   background-image: url("../img/zeotrope.jpg");
  26.   background-size: 1200px 111px;
  27.   background-repeat: no-repeat;
  28.   transform-style: preserve-3d;
  29. }

该 CSS3 西洋镜动画特效的图片动画不是 GIF 图片,它使用的是一张类似电影胶片的雪碧图片:

这个动画的关键是在上面的 animation 上,animation 动画的语法如下:
animation: [animation-name] [animation-duration] [animation-timing-function] [animation-delay] [animation-iteration-count] [animation-fill-mode];

这里的 animation-timing-function 属性使用的是 steps(35),表示每一帧的动画时间为 3s/35=0.085s,这样不停的以高速沿 Y 轴旋转雪碧图片,就像真实的西洋镜快速的循环顺序转动图片产生动画效果一样。

纯 CSS3 打造西洋镜动画特效

已有 456 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!