参考链接:好吧,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. 【08_238】Product of Array Except Self

    Product of Array Except Self Total Accepted: 26470 Total Submissions: 66930 Difficulty: Medium Given ...

  2. 解决Win7下打不开chm文件的方法

    win7 无法打开chm操作如下:1,在命令行运行regsvr32 itss.dll2,在命令行运行regsvr32 hhctrl.ocx

  3. SQLSERVER迁移工具 SSMA5.3发布

    SQLSERVER迁移工具 SSMA5.3发布 官方论坛/博客: SQL Server Migration Assistant (SSMA) Team's Blog Welcome to SQL Se ...

  4. 从RTSP协议SDP数据中获得二进制的SPS、PPS

    在RTSP协议的交互过程中,第二步客户端发送DESCRIBE请求之后,服务端会返回SDP内容,该SDP内容中有关于媒体和会话的描述,本篇文章主要给出如何从SDP字符串中得到H264视频信息中的sps. ...

  5. 我的Win32开发抉择,Delphi老将复出

    这两天在开发公司的一个教学软件客户端,因为要考虑到给PHP.平面设计等班的同学使用,为了避免安装.Net Framework.JRE的麻烦(如果把.Net Framework.JRE打包到安装包,也会 ...

  6. C语言 栈 链式结构 实现

    一个C语言链式结构实现的栈 mStack (GCC编译). /** * @brief C语言实现的链式结构类型的栈 * @author wid * @date 2013-10-30 * * @note ...

  7. 说不尽的MVVM(1) – Why MVVM

    最近学的一篇课文<说不尽的狗>竟让我有了写<说不尽的MVVM>这一想法,事非亵渎,实出无奈.我在刚学WPF不久时听说有MVVM这种东西,做了下尝试,发现他能给程序的设计带来很大 ...

  8. Atitit 网络爬虫与数据采集器的原理与实践attilax著 v2

    Atitit 网络爬虫与数据采集器的原理与实践attilax著 v2 1. 数据采集1 1.1. http lib1 1.2. HTML Parsers,1 1.3. 第8章 web爬取199 1 2 ...

  9. paip.提升性能---并行多核编程哈的数据结构list,set,map

    paip.提升性能---并行多核编程哈的数据结构list,set,map vector/copyonwritearraylist 都是线程安全的. 或者经过包装的list ::: collection ...

  10. HTML5 <a>标签的ping属性用法

    随着移动互联网用户井喷式的增长,web前端开发中的HTML5在近几年备受瞩目,越来越多的人从事html5开发相关工作.今天小编也来凑个热闹,和大家一起来谈谈HTML5中<a>标签的ping ...