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 ...
随机推荐
- C语言extern作用(全局变量)
用C语言编写程序的时候,我们经常会遇到这样一种情况:希望在头文件中定义一个全局变量,然后包含到两个不同的c文件中,希望这个全局变量能在两个文件中共用. 举例说明:项目文件夹project下有main. ...
- 安装Pomelo 时遇到的坑
一.Pomelo相关的代码地址 https://github.com/NetEase,这里面包含比较多的项目. 2. https://github.com/NetEase/pomelo/wiki/%E ...
- 过滤器(servlet.filter)和拦截器(springmvc.interceptor)区别
①拦截器是基于java的反射机制的,而过滤器是基于函数回调. ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器. ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求 ...
- Linux下Tomcat重新启动
在Linux系统下,重启Tomcat使用命令操作的! 首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh 查看 ...
- 安装SQLSERVER2012遇到的一些问题
安装SQLSERVER2012遇到的一些问题 先到MSDN我告诉你http://msdn.itellyou.cn/下载安装包,我每次都到MSDN我告诉你里下载的,因为那里的安装包保证能用 我的环境是: ...
- 想抛就抛:Application_Error中统一处理ajax请求执行中抛出的异常
女朋友不是想抛就抛,但异常却可以,不信请往下看. 今天在MVC Controller中写代码时,纠结了一下: public async Task<ActionResult> Save(in ...
- 从源代码分析Android-Universal-Image-Loader的缓存处理机制
讲到缓存,平时流水线上的码农一定觉得这是一个高大上的东西.看过网上各种讲缓存原理的文章,总感觉那些文章讲的就是玩具,能用吗?这次我将带你一起看过UIL这个国内外大牛都追捧的图片缓存类库的缓存处理机制. ...
- HBase在单Column和多Column情况下批量Put的性能对比分析
作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息 网址: http://www.cnblogs.com/panfeng412/archive/2013/11/28/hba ...
- SQL语法的重要知识点总结
好几年没写SQL语句了.现在到了新的team,需要用到数据库.作为QA的话时常需要使用客户端工具连接到数据库中找寻或修改数据.这么长时间没使用,一些SQL的使用技巧都忘得差不多了.晚上看了一些资料,花 ...
- django with mysql (part-2)
step01: write a ( views.py ) file vim views.py Insert the below code : step02: configure your ( urls ...