HTML5 CSS3 实现3D轮播效果

1.运用之前学到的知识,具体参考:

http://www.cnblogs.com/lexin593119348/p/6835457.html

补充知识点,旋转的时候以旋转元素为中心点,所以子元素的位置如果不以该元素为中心旋转的时候就会飘来飘去,想要固定下来的话可以将子元素的位置调整到以该元素为中心。

将正方体的各个面调整好位置和角度后,为父div添加旋转动画既可实现。

具体代码:

HTML:

<div class="outbox">
<div class="smallbox">
<div class="mydiv rx"><img src="img/1.jpg"></div>
<div class="mydiv ry"><img src="img/2.jpg"></div>
<div class="mydiv rz"><img src="img/3.jpg"></div>
<div class="mydiv tx"><img src="img/4.jpg"></div>
<div class="mydiv ty"><img src="img/5.jpg"></div>
<div class="mydiv tz"><img src="img/6.jpg"></div>
<div class="mydiv a"><img src="img/7.jpg"></div>
<div class="mydiv b"><img src="img/8.jpg"></div>
</div>
</div>

CSS:

body,html{
margin: 0;
padding: 0;
}
.outbox img{
width: 300px;
height: 300px;
}
.outbox{
width: 300px;
height: 300px;
margin: 200px auto 0;
}
.smallbox{
/*background: lavender;*/
border: solid;
width: 300px;
height: 300px;
transform-style: preserve-3d;
position: relative;
animation: anibox 15s infinite linear;
}
.smallbox:active{
animation-play-state: paused;
}
@keyframes anibox{
0%{-webkit-transform: perspective(1800px) rotateY(0deg);translateZ(0px);}
50%{-webkit-transform: perspective(1800px) rotateY(180deg);translateZ(0px);}
100%{-webkit-transform: perspective(1800px) rotateY(360deg);translateZ(0px);}
}
.mydiv{
position: absolute;
width: 300px;
height: 300px;
opacity: 0.9;
}
.ty{
-webkit-transform:translateZ(475px);
}
.rz{
-webkit-transform:
rotateY(-45deg)
translateZ(460px)
translateX(50px);
}
.rx{
-webkit-transform:
rotateY(45deg)
translateZ(460px)
translateX(-50px);
}
.tx{
-webkit-transform:
rotateY(-90deg)
translateZ(410px)
translateX(70px);
}
.ry{
-webkit-transform:
rotateY(90deg)
translateZ(410px)
translateX(-70px);
}
.a{
-webkit-transform:
rotateY(135deg)
translateZ(380px)
translateX(-40px);
}
.b{
-webkit-transform:
rotateY(-135deg)
translateZ(380px)
translateX(40px);
}
.tz{
-webkit-transform:
rotateY(180deg)
translateZ(375px);
}

运行效果图:

时间: 2024-10-23 18:02:18

HTML5 CSS3 实现3D轮播效果的相关文章

CSS3动画结合js实现3D轮播

昨天晚上有个同行提出要做一个旋转式的3D轮播图(下面统称banner图).我就为了帮他看了一下相关的技术贴发现符合要求的很少,所以只能自己去动手写了.看到有人写了CSS3立体旋转动画的博客,我就想把这个动画拆分成几个模块来做一个banner效果可不可以?最后自己动手写了一下还是可以的.不过这个banner效果还是存在一些bug,因为不是急用所以我也没有修复.以后有空我会修复的. html部分代码 <div class="container"> <div class=&

CSS3图片轮播效果

原文:CSS3图片轮播效果 在网页中用到图片轮播效果,单纯的隐藏.显示,那再简单不过了,要有动画效果,如果是自己写的话(不用jquery等),可能要费点时间.css3的出现,让动画变得不再是问题,而且简单易用.下面介绍我用css3与js写的一个图片轮播效果. 一般图片轮播就是三四张图片: <div class="wrap"> <div class="carousel"> <div><img src="http://

基于css3的轮播效果

花了一上午来调整页面在ie10上的显示问题,sass编译生成的css文件在ie内核下一直不能正确加载,果然兼容性的问题还需要好好研究.转入正题,用css3实现轮播效果主要是基于css3的framework动画效果实现轮播效果以及之前提到的input:checked伪类来实现轮播的控制.在轮播的控制上不可避免的使用了js,一直想写出优雅的js代码,在看了自己写的代码之后发现自己还有很大的提升空间,也许该找个机会去阅读优秀框架的源代码了. 当然也借鉴了网上很多资料,有问题的是在ie下完全没有效果,对

3d轮播图的效果实现

最近工程比较松,所以自己研究了一下3d轮播图的实现原理,其实说白了也不是很难就是在x,y,z轴上的平移和整个平面的旋转变换达到的效果, 下面是实现代码 html部分 <div class="stage"> <div class="contains"> <div style="transform: rotateY(0deg) translateZ(400px);">关于我</div> <div

Web全栈之路 1.CSS3中3D立方体以及3D轮播图

1.3D坐标系 3D坐标可以用左手来模拟,其中大拇指方向默认是X轴正方向,食指方向是Y轴正方向,中指方向是Z轴正方向.注意:当设置transform:rotateX(90deg)时,相当于将X轴转动90°,此时Z轴正方向向上,所以设置transform:translateZ(150px)时,就产生了3D立方体的上面,具体原理可以通过chrome浏览器审查元素来调试. 2.3D视图 transform-style:flat(默认,二维效果) / preserve-3d(三维效果).设置一个元素的t

使用纯css3实现图片轮播

<!DOCTYPE html> <html> <head> <title> 飛天网事--纯CSS代码实现图片轮播 </title> <meta charset="utf-8" /> <meta name="description" content="飛天网事,WEB前端开发,纯css3代码图片轮播,HTML5+CSS3精彩案例" /> <meta name=

Vue 3D轮播 带缩略图 版本 (+动画 翻卡)

前言 用Vue来写了 移动端 3D轮播 带缩略图  ,在加 动画翻卡效果  ,其实也不是太难吧,也就做了一下午,哈哈, 船到桥头自然直,这样才可以, 首先看下做好的效果图 可以 点击 滑动 ,可以触摸滑动, 可以点击 缩略图滑动, 最后 在点击那个 选中的 翻卡的 那个有翻卡 的3D效果 代码: <template> <section class="container"> <div id="slide" class="slid

jQuery实现轮播效果(一)

前戏: XXXX年XX月XX日,经理交给我一个网站新闻资讯网页开发的活儿,我一个java程序员,怎么完成得了网页设计这样高端的活儿呢!之前虽然有学过一点HTML,CSS的知识,但是在实际的使用中,把页面整的好看很困难,最后信心没了,就再也不想去做涉及网页开发的事儿了,一心学习java.如果在小公司做java web开发,专门做后台的开发时很少的,一般还得弄前台页面(PS:做这些前台也很简单,要么用一些前端框架,要么就是把以前的项目拷过来再修改下页面).拿到网页开发这个活儿,我顿时愣了,不过好在不

jQuery实现轮播效果(一) - 基础

前戏: XXXX年XX月XX日,经理交给我一个站点新闻资讯网页开发的活儿.我一个java程序猿,怎么完毕得了网页设计这样高端的活儿呢! 之前尽管有学过一点HTML.CSS的知识.可是在实际的使用中,把页面整的好看非常困难,最后信心没了,就再也不想去做涉及网页开发的事儿了.一心学习java.假设在小公司做java web开发,专门做后台的开发时非常少的.一般还得弄前台页面(PS:做这些前台也非常easy,要么用一些前端框架,要么就是把曾经的项目拷过来再改动下页面).拿到网页开发这个活儿.我顿时愣了