人人都能读懂的css3 3d小demo
2018-06-24 00:57:35来源:未知 阅读 ()
css3 3d案例总结
最近入坑 Web 动画,所以把自己的学习过程记录一下分享给大家。就把最近做的比较好的给大家分享下
1.旋转拼图
首先看下效果
代码主要由HTML和CSS3组成,应该说还是比较简单的。
首先是HTML代码:
<div class="camera" id="camera">
<div class="kuai">
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
</div>
<div class="kuai">
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
</div>
<div class="kuai">
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
</div>
<div class="kuai">
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
</div>
<div class="kuai">
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
<div class="mian"></div>
</div>
</div>
这里用了3层div的HTML框架,层次非常清晰。
接下来重点是CSS代码,如何用CSS3的特性来实现3d和滚动效果,从来让其看起来呈3D的状态。
body{
background: red;
}
/*对于相机元素*/
.camera{
perspective: 800px;/*这个属性是视距(景深),就是目测的距离*/
width: 500px;
height: 300px;
margin: auto;
transform-style: preserve-3d;/*该属性规定如何在 3D 空间中呈现被嵌套的元素。preserve-3d子元素将保留其 3D 位置。*/
}
/*对于模块元素*/
.kuai{
width: 100px;
height: 300px;
margin: 50px auto;
float: left;
transform-style: preserve-3d;
position: relative;
transition:transform 1s;
margin-left: -1px;
}
/*对于模块的每个面元素*/
.kuai:nth-of-type(2)>.mian{
background-position: -100px 0;
}
.kuai:nth-of-type(3)>.mian{
background-position: -200px 0;
}
.kuai:nth-of-type(4)>.mian{
background-position: -300px 0;
}
.kuai:nth-of-type(5)>.mian{
background-position: -400px 0;
}
.kuai:nth-of-type(6)>.mian{
background-position: -500px 0;
}
.mian{
width: 100px;
height: 300px;
position: absolute;
font-size:100px;
text-align: center;
line-height: 300px;
transform-style: preserve-3d;
background-color: black;
backface-visibility: hidden;
}
.mian:nth-of-type(1){
transform: translateZ(150px);
background:url(../images/pic1.jpg) no-repeat;
background-size: 500px 100%;
}
.mian:nth-of-type(2){
transform: translateZ(-150px) rotateX(180deg);
background:url(../images/pic2.png) no-repeat;
background-size: 500px 100%;
}
.mian:nth-of-type(3){
width: 300px;
transform: rotateY(-90deg) translateZ(150px);/*3d中transform属性是关键的,它主要是靠旋转 移动 缩放来变形实现的*/
}
.mian:nth-of-type(4){
width: 300px;
transform: rotateY(90deg) translateZ(-50px);
}
.mian:nth-of-type(5){
transform: rotateX(90deg) translateZ(150px);
background:url(../images/pic3.jpg) no-repeat;
background-size: 500px 100%;
}
.mian:nth-of-type(6){
transform: rotateX(-90deg) translateZ(150px);
background:url(../images/pic4.jpg) no-repeat;
background-size: 500px 100%;
}
最后就是js
window.onload=function() {
var camera=document.getElementById('camera');
var kuais=camera.getElementsByClassName('kuai');
var chishu=0;
var geshu=5;
camera.onclick=function() {
chishu++;
for(var i=0;i<geshu;i++){
kuais[i].style="transition:transform 1s "+100*i+"ms;transform:rotateX("+chishu*90+"deg)";
}
}
}
这里有个属性没用到 transform-origin,它是用来改变元素的原点位置,可以不设置。如图
同理,还可以设置为:transform-origin:top right(右上角为原点)、transform-origin:bottom right(右下角为原点)、transform-origin:bottom left(左下角为原点)
总结
总而言之,在我学习CSS3的过程中,见到了不少的新特性,也学会了如何使用,但是我想说的是我们不管要学会怎么使用,更要去理解每一行代码为什么产生对应的效果,特别是对于3D transform,我们要从根本去理解了3D空间,才能更好的去掌握它的每一个属性值能够带来的效果。
--宏岩翼佬
*一篇原创文章,版权所有,转载请注明出处http://www.cnblogs.com/wanghongze/p/6385171.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:利用border制作三角形原理
- [css选择器]学css前要搞懂的选择器的优先级和权重问题 2020-03-01
- RBG颜色对照表:有网址 2018-06-24
- 通俗易懂的Nhibernate教程(2) ---- 配置之Nhibernate配置 2018-06-23
- 通俗易懂的Nhibernate教程(1) ----- 基本操作,映射,CURD 2018-06-23
- 看看这个常常被初级程序员弄不懂的 “事件” 2018-06-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash