参考链接:好吧,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. Linux Kernel 3.11 正式版发布

    Linus 发布 了 3.11 版本的 Linux 内核.该版本值得关注的新特性有: Lustre 分布式文件系统.透明的 ARM 架构的大数据页支持:ARM64 上的 Xen 和 KVM 虚拟化:O ...

  2. Orleans中的Timer和Reminder

    Timers and Reminder 定时器和提醒器 Orleans runtime 允许开发人员通过一种叫做timer和另一种叫做reminder的机制为grain添加周期性行为.接下来我分别为大 ...

  3. Vertica笔记

    1.Table不做存储,本质是一个视图,真正存储在 Projection 里.可以针对一个Table建多个Projection . 查看表和 Projection 的个数: select anchor ...

  4. Jquery最全过滤器总结

    不管什么时候,总是有这么些时候:当我们使用jQuery的各种过滤器时,总是有那么几个记不牢,还要搜索一下或者翻翻手册!多少次想总结一下,最终都没总结,现在网上找到一篇总结的不错的,但是排版有点乱,本人 ...

  5. ubuntu 12.04 支持中文----完胜版

    原文地址 http://pobeta.com/ubuntu-sublime.html, /* sublime-imfix.c Use LD_PRELOAD to interpose some func ...

  6. 【点滴javascript】变量与作用域

    基本类型与引用类型 ECMAScript的的变量有两种类型: 基本类型(值类型):简单数据段 引用类型:多个值构成的对象 在变量赋值结束后,解析器必须知道这个变量时基本数据类型还是引用类型,需要注意的 ...

  7. Express 4 更新改变文档

    概览 从 Express 3 到Express 4 是一个巨大的变化,这意味着现存的 Express 3 应用在不更新依赖的情况下将不能工作. 这篇文章涵盖一下内容: Express 4 中的变化 一 ...

  8. Django时间查询

    1.gt:大于某个时间now = datetime.datetime.now()#前一天start = now – datetime.timedelta(hours=23, minutes=59, s ...

  9. 【Android】Android开源项目分类汇总

    第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...

  10. 01、手把手Android攻城入门

    1.Android开发环境搭建: Eclipse Java EE IDE + ADT-23.0.6 + android-sdk-21-with-sdk-manager-r23.0.2 (安卓5.0)+ ...