CSS3学习笔记--transform基于原始数据(旋转木马实例)
参考链接:好吧,CSS3 3D transform变换,不过如此!
- transform-style:preserve-3d属性要在图片所在的容器(父元素)中定义,perspective定义在父子元素上的效果不同。
- 对象的Z轴与其平面垂直,因此照片需要先旋转,再位移;否则所有照片都会挤到一起。
- 点击图片后,都要基于图片的原始顺序和位置进行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基于原始数据(旋转木马实例)的更多相关文章
- CSS3学习笔记--transform中的Matrix(矩阵)
transform: matrix(a,b,c,d,e,f) ,如下图矩阵所示,任意点(x,y,1)经过matrix变化为(ax+cy+e,bx+dy+f,1),由此可以知道,matrix参数与tra ...
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- OGG学习笔记02-单向复制配置实例
OGG学习笔记02-单向复制配置实例 实验环境: 源端:192.168.1.30,Oracle 10.2.0.5 单实例 目标端:192.168.1.31,Oracle 10.2.0.5 单实例 1. ...
- CSS3学习笔记(3)-CSS3边框
p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...
- python3.4学习笔记(十一) 列表、数组实例
python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...
- 十天精通CSS3学习笔记 part3
第8章 CSS3中的变形与动画(上) 变形--旋转 rotate() 旋转rotate()函数通过指定的角度参数使元素相对原点进行旋转.它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度. ...
- CSS3学习笔记之linear-gradient
我觉得CSS3很不错,自己也稍微看过,并且尝试过一些属性.对我自己而言,我没有勇气说我学过CSS3,我觉得任何自己看来很小的事情,也只是站在自己的角度来评判.就算的是"简单的"HT ...
- HMM模型学习笔记(前向算法实例)
HMM算法想必大家已经听说了好多次了,完全看公式一头雾水.但是HMM的基本理论其实很简单.因为HMM是马尔科夫链中的一种,只是它的状态不能直接被观察到,但是可以通过观察向量间接的反映出来,即每一个观察 ...
- Linux简易APR内存池学习笔记(带源码和实例)
先给个内存池的实现代码,里面带有个应用小例子和画的流程图,方便了解运行原理,代码 GCC 编译可用.可以自己上网下APR源码,参考代码下载链接: http://pan.baidu.com/s/1hq6 ...
随机推荐
- iOS开发零基础--Swift基础篇--常量&变量的定义
什么是常量和变量 在Swift中规定:在定义一个标识符时必须明确说明该标识符是一个常量还是变量 使用let来定义常量,定义之后不可以修改 使用var来定义变量,定义之后可以修改 常量和变量的使用注意: ...
- C#自学系列 - 开篇
2014年即将过去,这一年我参加了不少面试,被问到了很多问题.回来总结下发现自己确实在基础方面有着很多的不足,还有很多东西是我不知道的.遂在下半年购入书籍若干,并系统的加以学习.我目前在看的书是Jon ...
- Asp.Net Web API 2第十四课——Content Negotiation(内容协商)
前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET W ...
- QlikView ETL - 分隔字符串的方法 SubField
开篇介绍 今天在使用 QV 加载数据的时候会碰到列中的一些状态,信息是通过:或者 / 等符号分隔的,这样不利于做数据分析,因为字符串中的内容本身就是维度.上网搜了一下找到了解决的方法,记录一下. 比如 ...
- CBA 赛程的笔记 - 北京首钢
2014-11-01 19:35 北京首钢 103:89 广东宏远 结束 技术统计 发挥不错,打的比较好! 2014-11-05 19:35 八一双鹿 89:100 北京首钢 结束 技术统计 第一 ...
- thinkphp支持大小写url地址访问,不产生下划线
from:http://www.111cn.net/phper/thinkPhp/57748.htm 一.在配置文件中开启了thinkphp的大小写识别功能,使链接大小写都可以正常访问: ‘URL_C ...
- Arduino 端口通信实例
////////////////////////////////////////////////////////// //Arduino 1.0.x-----Arduino Uno----COM9 / ...
- memcached与.NET的融合使用(一)
流量开始暴增之后,访问速度开始明显不如以前,开始考虑在程序中加入缓存,以前最常用的就是asp.net的cache,优点是进程内cache,效率非常高,同时对于缓存的对象可以直接获得 引用,并进行修改, ...
- MySQL的pt-query-digest的下载与使用
对于脚本文件,是可以执行的,我们不用安装.所以,但是这个脚本文件没有执行的权限,所以,我们首先赋予这个脚本文件的可执行的权限. 再次查看文件的信息后. 已经有了执行的权限了. 运行脚本的时候,可要注意 ...
- iOS UITableView中点击状态栏无法回滚到顶部
// When the user taps the status bar, the scroll view beneath the touch which is closest to the stat ...