前端十五课--3D动画、阴影,滤镜

3D动画、阴影,滤镜

**3D动画原理:**在平面内建立一个三维座标系,水平向右x正轴,垂直向下y正轴,由平面指向用户的轴称为z轴;

3D动画必备:

1.perspective:1000px;通过给座标系添加perspective样式即可增加z轴;

2.z轴的位置可以用perspective样式来设置

默认位置perspective-origin:50% 50%;(元素的中心位置)

例:0% 0%则是x轴y轴的交点处;与变化原点类似;

3.物体沿z轴移动符合透视法则,物体z轴长度越小用户在视觉上看到的物体越大;

4.要实现3D效果的元素必须拥有一个父元素,其子元素才会获得透视效果,实现3d视觉效果关键点是将实现3d效果元素的父元素进行旋转(即绕x轴y轴旋转);

5.当x为正值时向上旋转,y为正值时向右旋转;

元素通过水平中线和垂直中线的交点确定,在计算中线时元素的margin值也计算在内;

6.父元素中必加两个属性:

​ transform-style:preserve-3d;

​ perspective:1000px;

元素原点的确定

1.使用绝对定位样式移动元素时,此时座标系的x轴和y轴以设置里相对定位的祖先元素的中点为原点

2.使用transform的位移样式或是相对定位样式移动元素时,此时座标系的x轴和y轴以元素的中心为原点

3.默认情况下,座标系的z轴位于父元素的水平中线与垂直中线的的交界处;

3D切割轮播图的实现:

原理:就是将四张图片分别放在多个正方体的四个面上,在每一个正方体的相同的一个面上定位遇上一个盒子连续的图片,这样就能实现多个盒子的四个面排列起来后成为连续的图片,最后给每个盒子加上动画效果(盒子之间要有延时),这样就能在视觉上表现出轮播效果。

盒阴影

**原理:**通过box-shadow属性给元素加一个阴影(初始值与元素大小相同);

​ 默认值:box-shadow:none;

复合写法:box-shadow:10px 15px 20px 25px yellow inset/outset;

​ 第一个值是阴影的水平距离移动(默认向右移动)—xOffset

​ 第二个值是阴影的垂直距离移动(默认向下移动)–yOffset

​ 第三个值是阴影的模糊距离(作用就是增强阴影边框的模糊感)—burlLenght

​ 第四个值可以缩放阴影的大小—spread;

​ 第五个值是阴影的颜色设置,默认情况下它的颜色是黑色—color

​ 第六个值是阴影表示模糊感的方向是向内还是向外,在不设置的情况下默认是向外(outset)—outset;

文字阴影

正常文字设置阴影:

text-shadow:none(默认值);

text-shadow:10px 10px 5px black;同盒阴影的属性相同;

凹凸文字:

凸文字形成原理:同一文字设置两组阴影,但两组阴影颜色不同(右下阴影颜色为暗色,左上颜色为亮色)

例:text-shadow:1px 1px 3px black, -1px -1px 3px white;

凹文字形成原理:两组阴影,(右下颜色亮色,左上颜色为暗色)

例:text-shadow:1px 1px 3px white,-1px -1px 3px black;

滤镜样式:

filter:滤镜属性,默认值为none;

一下是filter的样式

blur(px):高斯模糊,值越大越模糊;

brightness(%):亮度,默认值是100%,0%会全黑,大于100%会越来越亮;

contrast(%):对比度,默认值是100%,0%会全灰。大于100%对比度越来越强

drop-shadow(h-shadow v-shadow blur spread color):图片阴影;filter:drop-shadow(2px 5px 5p);

grayscale(%):灰度,默认值0%,100%会全灰;

hue-rotate(deg):色相旋转,0deg默认值,没有最大值,超过360deg,相当于绕一圈

invert(%):反转输入图像,0%默认值,100%完全反转

opacity(%):透明度,100%默认值,0%完全透明,与opacity很像,不同之处在于通过filter,一些浏览器会提供硬件加速;

saturate(%):饱和度,100%默认值,0%完全不饱和,超过100%,有更高的饱和度;

sepia(%):深褐色,0%默认值,100%完全深褐色;

滤镜的使用,顺序决定结果;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章