参考链接:好吧,CSS3 3D transform变换,不过如此!

  1. transform-style:preserve-3d属性要在图片所在的容器(父元素)中定义,perspective定义在父子元素上的效果不同。
  2. 对象的Z轴与其平面垂直,因此照片需要先旋转,再位移;否则所有照片都会挤到一起。
  3. 点击图片后,都要基于图片的原始顺序和位置进行transform计算。下面是旋转木马的javascript代码、HTML代码和CSS代码。
<script type="text/javascript">
var count = 1;
function rotateRound(){ //不管第几次点击,myCircle取出来的Img列表都是HTML中的原始顺序
var myCircle = document.getElementById("circle").getElementsByTagName("img");
var i;
var myImg;
for(i=0;i<myCircle.length;i++){
myImg = myCircle[i];
myImg.style.transform = "rotateY("+(i-count)*40+"deg) translateZ(300px)"; //每次transform都是基于原始位置,而不是当前视图显示的位置。
}
count++;
};
</script>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>旋转木马</title>
<link rel="stylesheet" href="MerryGoRound.css" />
<script type="text/javascript">
var count = 1;
function rotateRound(){
var myCircle = document.getElementById("circle").getElementsByTagName("img");
var i;
var myImg;
for(i=0;i<myCircle.length;i++){
myImg = myCircle[i];
myImg.style.transform = "rotateY("+(i-count)*40+"deg) translateZ(300px)";
}
count++;
};
</script>
</head> <body>
<section id="stage"><center>
<div id="circle" onclick="rotateRound()">
<img class="girls one" src="01.jpg" alt="Taboo" />
<img class="girls two" src="02.jpg" alt="Taboo" />
<img class="girls three" src="03.jpg" alt="Taboo" />
<img class="girls four" src="04.jpg" alt="Taboo" />
<img class="girls five" src="05.jpg" alt="Taboo" />
<img class="girls six" src="06.jpg" alt="Taboo" />
<img class="girls seven" src="07.jpg" alt="Taboo" />
<img class="girls eight" src="08.jpg" alt="Taboo" />
<img class="girls nine" src="09.jpg" alt="Taboo" />
</div>
</center></section>
</body>
/******************************CSS代码**********************************************/
#stage {
width:auto;
margin:50px 50px;
}
#circle {
perspective:1200px;
-moz-transform-style:preserve-3d;
}
.girls {
width:200px;
height:300px;
position:absolute;
-moz-transition:all 0.3s linear;
}
.one {
-moz-transform:rotateY(0deg) translateZ(300px); 照片绕城柱形,像旋转木马一样
}
.two {
-moz-transform:rotateY(40deg) translateZ(300px);
}
.three {
-moz-transform:rotateY(80deg) translateZ(300px);
}
.four {
-moz-transform:rotateY(120deg) translateZ(300px);
}
.five {
-moz-transform:rotateY(160deg) translateZ(300px);
}
.six {
-moz-transform:rotateY(200deg) translateZ(300px);
}
.seven {
-moz-transform:rotateY(240deg) translateZ(300px);
}
.eight {
-moz-transform:rotateY(280deg) translateZ(300px);
}
.nine {
-moz-transform:rotateY(320deg) translateZ(300px);
}

CSS3学习笔记--transform基于原始数据(旋转木马实例)的更多相关文章

  1. CSS3学习笔记--transform中的Matrix(矩阵)

    transform: matrix(a,b,c,d,e,f) ,如下图矩阵所示,任意点(x,y,1)经过matrix变化为(ax+cy+e,bx+dy+f,1),由此可以知道,matrix参数与tra ...

  2. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  3. OGG学习笔记02-单向复制配置实例

    OGG学习笔记02-单向复制配置实例 实验环境: 源端:192.168.1.30,Oracle 10.2.0.5 单实例 目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1. ...

  4. CSS3学习笔记(3)-CSS3边框

    p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...

  5. python3.4学习笔记(十一) 列表、数组实例

    python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...

  6. 十天精通CSS3学习笔记 part3

    第8章 CSS3中的变形与动画(上) 变形--旋转 rotate() 旋转rotate()函数通过指定的角度参数使元素相对原点进行旋转.它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度. ...

  7. CSS3学习笔记之linear-gradient

    我觉得CSS3很不错,自己也稍微看过,并且尝试过一些属性.对我自己而言,我没有勇气说我学过CSS3,我觉得任何自己看来很小的事情,也只是站在自己的角度来评判.就算的是"简单的"HT ...

  8. HMM模型学习笔记(前向算法实例)

    HMM算法想必大家已经听说了好多次了,完全看公式一头雾水.但是HMM的基本理论其实很简单.因为HMM是马尔科夫链中的一种,只是它的状态不能直接被观察到,但是可以通过观察向量间接的反映出来,即每一个观察 ...

  9. Linux简易APR内存池学习笔记(带源码和实例)

    先给个内存池的实现代码,里面带有个应用小例子和画的流程图,方便了解运行原理,代码 GCC 编译可用.可以自己上网下APR源码,参考代码下载链接: http://pan.baidu.com/s/1hq6 ...

随机推荐

  1. 关于QT安装的一些心得(QT551, VS2013)项目开发配置,以及项目结构分析

    推荐QT开发的配置如下: 我的硬件配饰中等,所以推荐一下配置: QT551版本,目前QT最新版8.0,为了稳定选择551版本 VS2013IDE, 因为VS2010与VS2013的编译器相同,但是VS ...

  2. linux-8 基本命令---echo

    1.echo   命令用于终端显示字符或变量 格式:“echo[字符串| 变量]” @1 .echo命令的字符串输出到终端: @2 .echo查看当前SHELL的变量值(前面有$符号): @3 .查看 ...

  3. javascript 中的console.log和弹出窗口alert

    主要是方便你调式javascript用的.你可以看到你在页面中输出的内容. 相比alert他的优点是: 他能看到结构话的东西,如果是alert,淡出一个对象就是[object object],但是co ...

  4. csc一些命令简记

    C#在命令行进行编译的一些命令: csc使用详解 @echo off cd / cd C:\Program Files (x86)\MSBuild\12.0\Bin set /p var= 请输入文件 ...

  5. Kotlin & Vertx 构建web服务

    感想 Kotlin 是一门好语言,值得大家了解一下. Vertx 是一个好框架,也值得大家了解一下. Kotlin 写过js,也写过一点点go,主力一直是java.用了kotlin,貌似找到了常用语言 ...

  6. IP协议

    因特网协议(Internet Protocol, IP)是Internet的核心协议之一, 工作在网络层.IP协议提供节点间的寻址,路由以及顺序控制, 流量控制等服务. IP协议分为IPv4和IPv6 ...

  7. [游戏模版19] Win32 物理引擎 匀速运动

    >_<:Learning the physical engine >_<:resource >_<:code #include <windows.h> ...

  8. artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口

    artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口 自适应内容 artDialog的特殊UI框架能够适应内容变化,甚至连外部程序动态插入的内容它仍然能自适应 ...

  9. C#与数据库访问技术总结(五)之Command对象的常用方法

    Command对象的常用方法 说明:上篇总结了Command对象的几个数据成员,这节总结Command对象的常用方法. 同样,在不同的数据提供者的内部,Command对象的名称是不同的,在SQL Se ...

  10. proj01总结:spring jdbc操作

    commons-collections.jar: Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大.必须使用的jar包. commons-l ...