01-平面转换
简介
作用:为元素添加动态效果,一般与过渡配合使用
概念:改变盒子在平面内的形态(位移、旋转、缩放、倾斜)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uD5gRCYO-1683949325115)(assets/1681357773327.png)]](https://img-blog.csdnimg.cn/3572dd740bb44567aa24e951d4a0edd6.png)
平面转换也叫 2D 转换,属性是 transform
平移
transform: translate(X轴移动距离, Y轴移动距离);
取值
像素单位数值百分比(参照盒子自身尺寸计算结果)正负均可 技巧
translate() 只写一个值,表示沿着 X 轴移动单独设置 X 或 Y 轴移动距离:translateX() 或 translateY()
定位居中
方法一:margin
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJ1a5gJ9-1683949325116)(assets/1681358076134.png)]](https://img-blog.csdnimg.cn/ca9015d39b74435996ac3fe522669ef3.png)
方法二:平移 → 百分比参照盒子自身尺寸计算结果
案例-双开门
![在这里插入图片描述](https://img-blog.csdnimg.cn/6fc86847d526485fbe4df3bfa742ee2f.gif#pic_center)
HTML 结构
CSS 样式
* {
margin: 0;
padding: 0;
}
/* 1. 布局:父子结构,父级是大图,子级是左右小图 */
.father {
display: flex;
margin: 0 auto;
width: 1366px;
height: 600px;
background-image: url(./images/bg.jpg);
overflow: hidden;
}
.father .left,
.father .right {
width: 50%;
height: 600px;
background-image: url(./images/fm.jpg);
transition: all .5s;
}
.father .right {
/* right 表示的取到精灵图右面的图片 */
background-position: right 0;
}
/* 2. 鼠标悬停的效果:左右移动 */
.father:hover .left {
transform: translate(-100%);
}
.father:hover .right {
transform: translateX(100%);
}
旋转
transform: rotate(旋转角度);
取值:角度单位是 deg技巧
取值正负均可取值为正,顺时针旋转取值为负,逆时针旋转
转换原点
默认情况下,转换原点是盒子中心点
transform-origin: 水平原点位置 垂直原点位置;
取值:
方位名词(left、top、right、bottom、center)像素单位数值百分比
案例-时钟
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jIjGkned-1683949325117)(assets/1681358351628.png)]](https://img-blog.csdnimg.cn/0dcbb6592390456c9923774b8a034efa.png)
.hour {
width: 6px;
height: 50px;
background-color: #333;
margin-left: -3px;
transform: rotate(15deg);
transform-origin: center bottom;
}
.minute {
width: 5px;
height: 65px;
background-color: #333;
margin-left: -3px;
transform: rotate(90deg);
transform-origin: center bottom;
}
.second {
width: 4px;
height: 80px;
background-color: red;
margin-left: -2px;
transform: rotate(240deg);
transform-origin: center bottom;
}
多重转换
多重转换技巧:先平移再旋转
transform: translate() rotate();
多重转换原理:以第一种转换方式坐标轴为准转换形态
旋转会改变网页元素的坐标轴向先写旋转,则后面的转换效果的轴向以旋转后的轴向为准,会影响转换结果
缩放
transform: scale(缩放倍数);
transform: scale(X轴缩放倍数, Y轴缩放倍数);
技巧
通常,只为 scale() 设置一个值,表示 X 轴和 Y 轴等比例缩放取值大于1表示放大,取值小于1表示缩小
案例-播放特效
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0c8d0MX8-1683949325118)(assets/1681358481436.png)]](https://img-blog.csdnimg.cn/30beb308e8b94d0281eba66a482282be.png)
CSS 样式
/* 1. 摆放播放按钮:图片区域的中间 */
.box li {
overflow: hidden;
}
.pic {
position: relative;
}
.pic::after {
position: absolute;
left: 50%;
top: 50%;
/* margin-left: -29px;
margin-top: -29px; */
/* transform: translate(-50%, -50%); */
content: '';
width: 58px;
height: 58px;
background-image: url(./images/play.png);
transform: translate(-50%, -50%) scale(5);
opacity: 0;
transition: all .5s;
}
/* 2. hover效果:大按钮,看不见:透明是0 → 小按钮,看得见:透明度1 */
.box li:hover .pic::after {
transform: translate(-50%, -50%) scale(1);
opacity: 1;
}
倾斜
transform: skew();
取值:角度度数 deg
02-渐变
渐变是多个颜色逐渐变化的效果,一般用于设置盒子背景
分类:
线性渐变
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N1VVTtKx-1683949325119)(assets/1681358603090.png)]](https://img-blog.csdnimg.cn/c27f584f99834b5da1da72951627987c.png)
径向渐变
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LoidpHV5-1683949325119)(assets/1681358608036.png)]](https://img-blog.csdnimg.cn/e26b92e8058e44aeaf0189f3b685e8d7.png)
线性渐变
background-image: linear-gradient(
渐变方向,
颜色1 终点位置,
颜色2 终点位置,
......
);
取值:
渐变方向:可选
to 方位名词角度度数 终点位置:可选
百分比
案例-产品展示
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AtBbOsV5-1683949325120)(assets/1681358757636.png)]](https://img-blog.csdnimg.cn/29359dd72abf4407ba7e24e84014adf2.gif)
HTML 结构
OceanStor Pacific 海量存储斩获2021 Interop金奖
CSS 样式
.mask {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-image: linear-gradient(
transparent,
rgba(0,0,0,0.5)
);
opacity: 0;
transition: all .5s;
}
.box:hover .mask {
opacity: 1;
}
径向渐变
background-image: radial-gradient(
半径 at 圆心位置,
颜色1 终点位置,
颜色2 终点位置,
......
);
取值:
半径可以是2条,则为椭圆圆心位置取值:像素单位数值 / 百分比 / 方位名词
|