CSS3 实现3D旋转木马

一、transform: rotateX() rotateY()

先要将图片进行旋转。

rotateX(30deg)变成了

有点难理解。附上几何图(侧面视角):

rotateY(30deg):

同样的道理,几何图(顶部视角):

然后就可以将图片进行旋转,准备了8张图片需要旋转的角度为(360/8 = 45deg)。

		<style type="text/css">
			._container{width: 300px;height: 150px;margin: 0 auto;}
			img{width: 300px;height: 150px;position: absolute;cursor: pointer;}
			img:nth-child(1){transform: rotateY(0deg);}
			img:nth-child(2){transform: rotateY(45deg);}
			img:nth-child(3){transform: rotateY(90deg);}
			img:nth-child(4){transform: rotateY(135deg);}
			img:nth-child(5){transform: rotateY(180deg);}
			img:nth-child(6){ransform: rotateY(225deg);}
			img:nth-child(7){transform: rotateY(270deg);}
			img:nth-child(8){transform: rotateY(315deg);}
		</style>
	<body>
		<div class="_container">
			<img src="img/rotate_translate1.jpg"/>
			<img src="img/rotate_translate2.jpg"/>
			<img src="img/rotate_translate3.jpg"/>
			<img src="img/rotate_translate4.jpg"/>
			<img src="img/rotate_translate5.jpg"/>
			<img src="img/rotate_translate6.jpg"/>
			<img src="img/rotate_translate7.jpg"/>
			<img src="img/rotate_translate8.jpg"/>
		</div>
	</body>

= =接着我们发现图片都堆成一堆

二、transform-style: preserve-3d;

由于图片堆在了一起我们给他加个transform-style: preserve-3d;

这样图片将以3d视角展示

._container{width: 300px;height: 150px;margin: 0px auto;transform-style: preserve-3d; }

效果图:

额.......图片都黏在一起了。

三、transform: translateZ()

这是tranlate的正负值图。因此我们需要将图片都沿着Z轴方向平移一定长度。

注意 :这里的translate坐标为图片坐标,因此当图片rotate的时候,坐标也跟着rotate,所以可以将img的tranlateZ都置为相同的值

这样的话所有图片都离远点的Z方向是相同的。

算出了translateZ的值约等于482.86px

img:nth-child(1){transform: rotateY(0deg) translateZ(482.86px); }
img:nth-child(2){transform: rotateY(45deg) translateZ(482.86px); }
img:nth-child(3){transform: rotateY(90deg) translateZ(482.86px); }
img:nth-child(4){transform: rotateY(135deg) translateZ(482.86px); }
img:nth-child(5){transform: rotateY(180deg) translateZ(482.86px); }
img:nth-child(6){transform: rotateY(225deg) translateZ(482.86px); }
img:nth-child(7){transform: rotateY(270deg) translateZ(482.86px); }
img:nth-child(8){transform: rotateY(315deg) translateZ(482.86px); }

 效果图:

有人说看过去怎么跟2d一样。博主你在逗我么?其实已经是3d视角了。只是我们是从正面看过的。即几何模型的主视图。

我们可以将容器_container向前旋转10deg即(rotateX(-10deg)).

._container{width: 300px;height: 150px;margin: 100px auto;transform-style: preserve-3d;transform: rotateX(-10deg); }

结果图:

有点样子出来了。

 四、perspective

这个是个好东西。

为什么有些图看过去像3d图呢?

就好比一个正方体在你的面前。当你的视角慢慢的从0~远离。你看到的正方体会从原来0视角的正方形慢慢的变成正方体。

perspective干的事就是讲我们距离屏幕一定视角的图片成现在显示器中

所以我们假设perspective:3000px;

就是我们眼睛距离屏幕3000px时观看到的效果。呈现在显示器中。

效果图:

时间: 2024-10-09 18:42:21

CSS3 实现3D旋转木马的相关文章

CSS3 实现3D旋转木马效果

基本原理: 1.首先我们需要让图片能旋转的效果,我们让所有图片绝对定位(position:absolute),共用一个中心点. 2.对于舞台我们加一个视距,比如下面的demo是 perspective: 800px; 3.对于容器 我们可以加一个3D视图 transform-style: preserve-3d; 4. 对于图片旋转,我们要使用在旋转 rotateY,但是一圈是360度,而图片共九张,因此每一张的图片旋转的角度是40度: 因此我们可以在css下这样写代码: img:nth-chi

HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/32964301 首先说明一下创意的出处:http://www.zhangxinxu.com/study/201209/pictures-3d-slide-view.html(张鑫旭的博客 ),对前台感兴趣的可以没事去看看他的博客,很给力~ 这篇博客的目的是因为上篇HTML5 CSS3专题 诱人的实例 CSS3打造百度贴吧的3D翻牌效果中有个关于CSS 3D效果的比较重要的知识点没

HTML5 CSS3:诱人的3D旋转木马效果相册实例

HTML5 CSS3:诱人的3D旋转木马效果相册实例 利用HTML5和CSS3实现的3D旋转木马效果相册 下载地址:http://www.devstore.cn/code/info/341.html 运行截图: 相关下载: HTML5 Canvas火焰闪烁动画 火焰跟随鼠标 HTML5仿Apple Watch时钟动画 版权声明:本文为博主原创文章,未经博主允许不得转载.

css3实现3D动画轮播图

这个感觉有点水,只是一个很简单的css3的3D动画,不过对于不会的人来说,应该还是蛮能唬人的吧,哈. 原理很简单,老规矩,都在注释里面,可以直接复制走代码,粘贴 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; marg

CSS3 《3D骰子 压大小》

游戏在线预览地址:http://dtdxrk.github.io/game/3d-dice/index.html js判断一个随机数大小的游戏. 本来想用canvas做的,平面的生产一个点数,感觉没啥意思. 结合CSS3来吧,正好温习一下css3的3d属性. CSS具体实现过程[CSS3练习]3D盒子制作

基于CSS3的3D旋转效果

自从有了html5和css3,好多以前只能想想的华丽效果都可以上手实现了.3D 转换(个人认为3D变换更贴切^)就是其中之一.关于3D转换,可以阅读CSS3 3D transform变换,不过如此,文中对3D转换进行了形象.生动.详细的阐述.在这里,只和大家讨论怎么利用3D转换来实现立体及其旋转效果,例如: 好吧,废话不多说,上代码! 1.页面代码 1 <div class="translate3D_test"> 2 <ul class="cube"

CSS3的3D转换效果详解介绍

CSS3的3D转换效果详解介绍:本章介绍一下CSS3的3D转换效果,此效果的实现依靠的是transform属性,3D转换只是此属性的部分应用,更多相关内容可以参阅CSS3的transform属性总略介绍一章节.掌握3D转换效果,可以从三个方法作为突破口,分别是rotateX, rotateY, rotateZ,在2D变换过程中rotate()函数的应用,它表示旋转的意思,由于是2D变换,所以它只是在一个平面进行旋转,所以无需细分,具体可以参阅CSS3的2D转换效果详细介绍一章节. 下面分别介绍一

CSS3的3D转换translate3d(x,y,z)函数

CSS3的3D转换translate3d(x,y,z)函数:translate3d(x,y,z)只是规定3D转换的一种形式,更多相关内容可以参阅CSS3的3D转换效果详解介绍一章节.此函数用来规定指定元素在三维空间中的位移.语法结构: translate3d(x,y,z) 参数解析:1.x:表示在x轴方向的位移.2.y:表示在y轴方向的位移.3.z:表示在z轴方向的位移.代码实例:1.x轴方向的位移: <!DOCTYPE html> <html> <head> <

初步学习css3之3D动画

本人是一名前端菜鸟,在css3如此火爆的时代,今天才来接触这个神秘的东西,第一次接触到的就是使用css3制作3d动画,特来写此文章,高手勿喷. 以下是body部分 <body> <div id="my3d"> <div id="pagegroup"> <div class="page" id="page1">1</div> <div class="pa