#学习笔记#(32)CSS3走马灯
2016-02-03 17:00
316 查看
来源:脚本之家http://www.jb51.net/css/266245.html
请用chrome或safari观看(只支持webkit浏览器)
知识点:
1 perspective 属性:
定义 3D 元素距视图的距离,以像素计。
该属性允许改变 3D 元素查看 3D 元素的视图。
当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。
当perspective:none/0;时,相当于没有设perspective(length)。
比如要建立一个小立方体,长宽高都是200px。如果perspective < 200px ,那就相当于站在盒子里面看的结果,如果perspective 非常大那就是站在非常远的地方看(立方体已经成了小正方形了)。
当元素没有设置perspective(length)时,所有后代元素被压缩在同一个二维平面上,不存在景深的效果。如果设置perspective(length)后,将会看到三维的效果。
默认的透视视角中心在容器(是perspective所在的元素,不是他的后代元素)的中点,也就是perspective-origin: 50% 50%。
当然你也可以自己设置,比如:左上角-webkit-perspective-origin: 0px 0px;。目前浏览器都不支持 perspective 属性。
Chrome 和 Safari 支持替代的 -webkit-perspective 属性。
2 走马灯原理:设置一个3D界面,再绘制走马灯的6个面,最后让这6个面绕着3D界面的中心轴旋转
3 transform-style 属性:规定如何在 3D 空间中呈现被嵌套的元素
transform-style:flat;元素不保留3D位置
transform-style:preserve-3d;元素保留其3D位置
4 keyframes属性:
@keyfrmes 动画名{
from{}to{}
}
类似flash关键帧,样式从from{}到to{},也可以设置从0%{}到100%{}
调用动画animation-name:动画名;
动画时长animation-duration:10s;
播放方式animation-timing-function:linear | ease | ease-in | ease-out | ease-in-out;
播放方向animation-direction:normal | alternate;
播放次数animation-iteration-count:infinite | <number>;
播放状态animation-play-state:running | pasused
动画开始前和结束后的属性设置animation-fill-mode:none | forwards | backwards | both;
5 transform属性
transform:translateZ(100px);在Z轴进行位移
transform:rotateY(100deg);绕Y轴旋转100度
代码:
请用chrome或safari观看(只支持webkit浏览器)
知识点:
1 perspective 属性:
定义 3D 元素距视图的距离,以像素计。
该属性允许改变 3D 元素查看 3D 元素的视图。
当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。
当perspective:none/0;时,相当于没有设perspective(length)。
比如要建立一个小立方体,长宽高都是200px。如果perspective < 200px ,那就相当于站在盒子里面看的结果,如果perspective 非常大那就是站在非常远的地方看(立方体已经成了小正方形了)。
当元素没有设置perspective(length)时,所有后代元素被压缩在同一个二维平面上,不存在景深的效果。如果设置perspective(length)后,将会看到三维的效果。
默认的透视视角中心在容器(是perspective所在的元素,不是他的后代元素)的中点,也就是perspective-origin: 50% 50%。
当然你也可以自己设置,比如:左上角-webkit-perspective-origin: 0px 0px;。目前浏览器都不支持 perspective 属性。
Chrome 和 Safari 支持替代的 -webkit-perspective 属性。
2 走马灯原理:设置一个3D界面,再绘制走马灯的6个面,最后让这6个面绕着3D界面的中心轴旋转
3 transform-style 属性:规定如何在 3D 空间中呈现被嵌套的元素
transform-style:flat;元素不保留3D位置
transform-style:preserve-3d;元素保留其3D位置
4 keyframes属性:
@keyfrmes 动画名{
from{}to{}
}
类似flash关键帧,样式从from{}到to{},也可以设置从0%{}到100%{}
调用动画animation-name:动画名;
动画时长animation-duration:10s;
播放方式animation-timing-function:linear | ease | ease-in | ease-out | ease-in-out;
播放方向animation-direction:normal | alternate;
播放次数animation-iteration-count:infinite | <number>;
播放状态animation-play-state:running | pasused
动画开始前和结束后的属性设置animation-fill-mode:none | forwards | backwards | both;
5 transform属性
transform:translateZ(100px);在Z轴进行位移
transform:rotateY(100deg);绕Y轴旋转100度
代码:
<!DOCTYPE html> <html> <head> <meta charset='gb2312'/> <title>CSS3跑马灯</title> <style> .container{ width:500px; height:400px; margin:100px auto; position:relative; -webkit-perspective:2000; -webkit-perspective-origin:50% -100%; } .rotate{ -webkit-transform-style:preserve-3d; -webkit-animation-name:rotation; -webkit-animation-duration:6s; -webkit-animation-iteration-count:infinite; -webkit-animation-timing-function:linear; } .rotate:hover{ -webkit-animation-play-state:paused; } .page{ width:200px; height:300px; position: absolute; } .page1{ background-color:green; -webkit-transform:translateZ(75px) rotateY(-60deg); } .page2{ background-color:blue; left:150px; -webkit-transform:translateZ(160px); } .page3{ background-color:yellow; left:300px; -webkit-transform:translateZ(75px) rotateY(60deg); } .page4{ background-color:orange; left:300px; -webkit-transform:translateZ(-95px) rotateY(120deg); } .page5{ background-color:gray; left:150px; -webkit-transform:translateZ(-180px) rotateY(180deg); } .page6{ background-color:red; -webkit-transform:translateZ(-95px) rotateY(-120deg); } @-webkit-keyframes rotation{ from{ -webkit-transform:rotateY(0deg); } to{ -webkit-transform:rotateY(360deg); } } </style> </head> <body> <div class="container"><!--3D界面--> <div class="rotate"><!--6个面--> <div class="page page1">1</div> <div class="page page2">2</div> <div class="page page3">3</div> <div class="page page4">4</div> <div class="page page5">5</div> <div class="page page6">6</div> </div> </div> </body> </html>注:位移和角度的数值计算还没理清,只通过效果进行了大致调整
相关文章推荐
- CSS中属性排序
- IE样式兼容写法
- CSS自定义select下拉选择框的样式(不用其他标签模拟)
- CSS中,margin的折叠(collapsing )问题
- less文件的样式无法生效的一个原因,通过WEB浏览器访问服务器less文件地址返回404错误
- CSS学习之CSS表的分类
- 前端初级自动化---脚本,样式合并及压缩
- CSS3选择器详解
- QT QSS样式表心得
- html修改radio、checkbox样式
- css 块状元素与行内元素(内联元素)的理解
- CSS的三种样式:内联式,嵌入式,外部式以及他们的优先级
- 盘点8种CSS实现垂直居中水平居中的绝对定位居中技术
- 五星评分第三方框架 HCSStarRatingView
- CSS实现三角形效果
- 安卓开发中的各种进度条样式
- CSS:列表项的一些操作
- 纯css实现扁平化360卫士logo demo
- IE 8 下面的垂直水平居中
- 个人笔记 css 03 设置表格显示外边框