css3-------变换/过渡/动画
变换transform
transform: rotate | scale | skew | translate;
属性之间用空格隔开 注意:不是逗号“,”
一、移动translate
1、translate(<translation-value>[, <translation-value>])(x偏移量,y偏移量)
2、translateX(<translation-value>)x偏移量
3、translateY(<translation-value>)y偏移量
-
.box{
-
width: 200px;
-
height: 200px;
-
background-color: #009;
-
transition: 1s;
-
}
-
.box:hover{
-
/* transform: translate(200px,300px); 向右下角移动,x方向200,y方向300 */
-
transform: translate(200px); /* 一个值代表x方向 */
-
}
移动定位
-
<style>
-
.box{
-
position: relative;
-
width: 300px;
-
height: 300px;
-
background-color: darkorange;
-
}
-
.box1{
-
position: absolute;
-
left: 50%;
-
top: 50%;
-
width: 150px;
-
height: 150px;
-
transform: translate(-50%,-50%);
-
background-color: aquamarine;
-
}
-
</style>
-
</head>
-
<body>
-
<div class="box">
-
<div class="box1"></div>
-
</div>
旋转rotate
Transform:rotate(45deg); 默认绕Z轴旋转
Transform:rotateX(45deg); 绕X轴旋转
Transform:rotateY(45deg); 绕Y轴旋转
Transform:rotateZ(45deg); 绕Z轴旋转,正值顺时针旋转
Perspective:500;设置元素被查看位置的视图(给父元素加这个属性,视图透视效果)值越大离元素越远
-
.box:hover p{
-
position: absolute;
-
transform:translate(-50%,-300px) rotate(360deg);
-
}
改变元素基点transform-origin
transform-Origin属性允许您更改转换元素的位置。
2D转换元素可以改变元素的X和Y轴。 3D转换元素,还可以更改元素的Z轴。
transform-origin:X Y
(1) transform-origin:left top:
(2) transform-origin:right
(3) transform-origin:25% 75%;
缩放scale
scale(数字) 等比例缩放
scale(x,y) | 定义 2D 缩放转换。 |
scale3d(x,y,z) | 定义 3D 缩放转换。 |
scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 |
scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 |
scaleZ(z) | 通过设置 Z 轴的值来定义 3D 缩放转换。 |
扭曲skew
skewX(30deg) X轴扭曲30度
skewY(10deg) Y轴扭曲10度
过渡transition
一、transition-property: (多个属性之间用逗号隔开)
transition-property : none | all | [ <IDENT> ]
二、transition-duration: (过渡持续时间)
transition-duration : <time> [, <time>]*
<time>为数值,单位为s(秒)或者ms(毫秒), 1s=1000ms
三、transition-timing-function:
1、ease:(逐渐变慢)默认值,ease函数等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0).
2、linear:(匀速),linear 函数等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0).
3、ease-in:(加速),ease-in 函数等同于贝塞尔曲线(0.42, 0, 1.0, 1.0).
4、ease-out:(减速),ease-out 函数等同于贝塞尔曲线(0, 0, 0.58, 1.0).
5、ease-in-out:(加速然后减速),ease-in-out 函数等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
6、cubic-bezier(x1,y1,x2,y2):(该值允许你去自定义一个时间曲线), 特定的cubic-bezier曲线。 (x1, y1, x2, y2) 四个值特定于曲线上点P1和点P2。所有值需在[0, 1]区域内,否则无效。四、transition-delay 延迟
cubic-bezier是贝塞尔曲线中的绘制方法。
贝塞尔曲线通过四个点来定义一条曲线。这四个值描述了控制点的位置p1,p2,其他两个点永远是p0(0,0)p3(1,1)。
cubic-bezier(0,.27,.32,1)
cubic-bezier(0.42, 0, 0.58, 1.0)
阶跃函数
一个是雪碧图的实现动画的steps效果。steps()阶跃函数,是transition-timing-function和animation-timing-function两个属性的属性值,他是表示两个关键帧之间的动画效果,默认是ease。
steps()有两个参数:参数一是把这次过渡分成几段,这几段其实是在时间上分为几段去显示执行。参数二是表示分成几段后,他是start还是end去执行动画。参数二有两个可选值start和end,默认是end。
背面是否可见
-webkit-backface:versibilty 默认值可见
backface:hidden 背面不可见
兼容性交叉,使用需加前缀
-
<style>
-
.box{
-
position: relative;
-
width: 640px;
-
height: 400px;
-
box-shadow: 0 0 0 2px pink;
-
perspective: 1000px;
-
}
-
.box img{
-
position: absolute;
-
left: 0;
-
top: 0;
-
transition: 2s;
-
-
-webkit-backface-visibility: hidden;
-
-moz-backface-visibility: hidden;
-
backface-visibility: hidden;
-
}
-
.box img:nth-of-type(1){
-
transform: rotateX(0deg); /*第一张照片旋转0度*/
-
}
-
.box img:nth-of-type(2){
-
transform: rotateX(-180deg); /*第二种照片旋转-180度,不显示*/
-
}
-
.box:hover img:nth-of-type(1){
-
transform: rotateX(180deg);
-
}
-
.box:hover img:nth-of-type(2){
-
transform: rotateX(0deg);
-
}
-
</style>
-
</head>
-
<body>
-
<div class="box">
-
<img src="./pic1.jpg" alt="">
-
<img src="./pic7.jpg" alt="">
-
</div>
-
</body>
正面
背面
照片滤镜
Filter 函数
注意: 滤镜通常使用百分比 (如:75%), 当然也可以使用小数来表示 (如:0.75)。
blur(px) | 给图像设置高斯模糊。"radius"一值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起, 所以值越大越模糊; 如果没有设定值,则默认是0;这个参数可设置css长度值,但不接受百分比值。 |
brightness(%) | 给图片应用一种线性乘法,使其看起来更亮或更暗。如果值是0%,图像会全黑。值是100%,则图像无变化。其他的值对应线性乘数效果。值超过100%也是可以的,图像会比原来更亮。如果没有设定值,默认是1。 |
contrast(%) | 调整图像的对比度。值是0%的话,图像会全黑。值是100%,图像不变。值可以超过100%,意味着会运用更低的对比。若没有设置值,默认是1。 |
drop-shadow(h-shadow v-shadow blur spread color) |
给图像设置一个阴影效果。阴影是合成在图像下面,可以有模糊度的,可以以特定颜色画出的遮罩图的偏移版本。 函数接受<shadow>(在CSS3背景中定义)类型的值,除了"inset"关键字是不允许的。该函数与已有的box-shadow box-shadow属性很相似;不同之处在于,通过滤镜,一些浏览器为了更好的性能会提供硬件加速。
|
grayscale(%) |
将图像转换为灰度图像。值定义转换的比例。值为100%则完全转为灰度图像,值为0%图像无变化。值在0%到100%之间,则是效果的线性乘子。若未设置,值默认是0; |
hue-rotate(deg) |
给图像应用色相旋转。"angle"一值设定图像会被调整的色环角度值。值为0deg,则图像无变化。若值未设置,默认值是0deg。该值虽然没有最大值,超过360deg的值相当于又绕一圈。 |
invert(%) |
反转输入图像。值定义转换的比例。100%的价值是完全反转。值为0%则图像无变化。值在0%和100%之间,则是效果的线性乘子。 若值未设置,值默认是0。 |
opacity(%) |
转化图像的透明程度。值定义转换的比例。值为0%则是完全透明,值为100%则图像无变化。值在0%和100%之间,则是效果的线性乘子,也相当于图像样本乘以数量。 若值未设置,值默认是1。该函数与已有的opacity属性很相似,不同之处在于通过filter,一些浏览器为了提升性能会提供硬件加速。 |
saturate(%) |
转换图像饱和度。值定义转换的比例。值为0%则是完全不饱和,值为100%则图像无变化。其他值,则是效果的线性乘子。超过100%的值是允许的,则有更高的饱和度。 若值未设置,值默认是1。 |
-
-
<html>
-
<head>
-
<style>
-
img {
-
width: 33%;
-
height: auto;
-
float: left;
-
}
-
-
.blur {-webkit-filter: blur(4px);filter: blur(4px);} /*模糊背景*/
-
.brightness {-webkit-filter: brightness(0.30);filter: brightness(0.30);} /*线性乘法*/
-
.contrast {-webkit-filter: contrast(180%);filter: contrast(180%);} /*图像对比度*/
-
.grayscale {-webkit-filter: grayscale(100%);filter: grayscale(100%);} /*灰度图像*/
-
.huerotate {-webkit-filter: hue-rotate(180deg);filter: hue-rotate(180deg);}/*色相旋转*/
-
.invert {-webkit-filter: invert(100%);filter: invert(100%);} /*反转输入图像*/
-
.opacity {-webkit-filter: opacity(50%);filter: opacity(50%);} /*照片透明度*/
-
.saturate {-webkit-filter: saturate(7); filter: saturate(7);} /*照片饱和度*/
-
.sepia {-webkit-filter: sepia(100%);filter: sepia(100%);} /*图片转为深褐色*/
-
.shadow {-webkit-filter: drop-shadow(8px 8px 10px green);filter: drop-shadow(8px 8px 10px green);}
-
/*阴影*/
-
</style>
-
</head>
-
<body>
-
-
<p><strong>注意:</strong> Internet Explorer 不支持 filter 属性。</p>
-
-
<img src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="blur" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="brightness" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="contrast" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="grayscale" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="huerotate" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="invert" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="opacity" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="saturate" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="sepia" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
<img class="shadow" src="pineapple.jpg" alt="Pineapple" width="300" height="300">
-
-
</body>
-
</html>
自定义变量
-
<style>
-
:root{
-
--c:#00f;
-
}
-
.box{
-
width: 200px;
-
height: 100px;
-
/* background-color: #f00; */
-
background-color: var(--c);
-
}
-
span{
-
/* color: #f00; */
-
color: var(--c);
-
}
-
</style>
-
</head>
-
<body>
-
<div class="box">hello div</div>
-
<span>hello span</span>
-
</body>
动画
动画animation
Keyframes “关键帧”
-
/* 定义关键帧 */
-
@keyframes myball { /*引用动画名称*/
-
/* from表示动画的开始位置,也可以使用0%来表示。 */
-
form{
-
transform: translate(0);
-
}
-
/* to表示动画的结束位置,也可以使用100%来表示。 */
-
to{
-
transform: translate(800px);
-
}
-
}
一、animation-name: 动画名称
-
animation-name: none | IDENT
-
IDENT是由Keyframes创建的动画名,可以同时附几个animation给一个元素,我们只需要用逗号“,”隔开
二、animation-duration 动画持续时间
取值:<time>为数值,单位为s (秒.)其默认值为“0”
三、animation-timing-function: 动画速度
animation-timing-function:ease | linear(匀速) | ease-in(加速) | ease-out(减速) | ease-in-out (加速再减速)| cubic-bezier(<number>, <number>, <number>, <number>) | steps()
steps函数
四、animation-delay: 动画延迟时间
取值为<time>为数值,单位为s(秒),其默认值也是0
五、animation-iteration-count 动画次数
animation-iteration-count: 4,可选值:数字或infinite,其中数字的大小就是执行的次数,而infinite则表示无限次。
animation-iteration-count:infinite | <number>
六、animation-direction 动画运动方向
normal,默认值,从from到to运行,每次都是这样;
reverse,从to到from运行,每次都是这样,从结束到开始;
alternate,从from向to运行,重复执行动画时会反方向执行,即第一个是从from到to,第二次则是从to到from……;
alternate-reverse,与alternate的执行时是反向的;
animation-direction: normal | alternate | reverse
七.动画的播放状态,默认 running
animation-play-state: running(开始)/paused(暂停)
八、animation-fill-mode 动画填充模式
规定动画在播放之前或之后,其动画效果是否可见。
animation-fill-mode : none | forwards | backwards | both;
none 不改变默认行为,默认值,动画执行完毕后,元素回到原来的位置。
both 向前和向后填充模式都被应用。
forwards 当动画完成后,保持最后一个属性值(在最后一个关键帧中定义)。动画执行完毕后,元素会停止在动画执行结束的位置;
backwards 在 animation-delay 所指定的一段时间内,在动画显示之前,应用开始属性值 (在第一个关键帧中定义)。动画延时等待时,元素就会处于开始的位置,即from或to所指定的位置;
animation里的forwards的作用:forwards是停在动画最后的的那个画面。
详细解释:
设置对象状态为动画结束时的状态,100%或to时,当设置animation-direcdtion为reverse时动画结束后显示为keyframes第一帧。
其他相关定义:
animation-fill-mode
设置动画结束后的状态
none:默认值。不设置对象动画之外的状态,DOM未进行动画前状态
forwards:设置对象状态为动画结束时的状态,100%或to时,当设置animation-direcdtion为reverse时动画结束后显示为keyframes第一帧
backwards:设置对象状态为动画开始时的状态,(测试显示DOM未进行动画前状态)
both:设置对象状态为动画结束或开始的状态,结束时状态优先
简写属性
可以使用animation一个属性来实现上面所介绍的所有属性,在使用animation时,格式如下:
animation: name duration timing-function delay iteration-count direction fill-mode;
需要注意的是,在写时间时,持续时间是在延迟时间的前面即可。
-
/*表示动画关键帧的名字为test,延迟一秒钟之后开始执行,持续时间两次,重复执行4次,时序函数为匀速运动,重复执行时方向为alternate。*/
-
animation: test 2s linear 1s 4 alternate;
定义一个小球的滚动
-
<style>
-
.box{
-
width: 100px;
-
height: 100px;
-
border-radius: 50%;
-
background-image: radial-gradient(#fff, #f01);
-
animation: myball; /*动画名称 */
-
animation-duration: 2s; /*动画的持续时间*/
-
animation-timing-function: linear; /*动画速度*/
-
/* animation-delay: 2s; 动画延迟时间 */
-
animation-iteration-count: infinite; /*播放次数*/
-
animation-direction: normal; /* 动画播放方向 默认从开始-->结束 */
-
/* animation-direction:reverse ; 从结束到开始 */
-
/* animation-direction: alternate; 从开始到结束再到开始 */
-
/* animation-direction: alternate-reverse; 从结束-->开始-->结束 */
-
}
-
/* 定义关键帧 */
-
@keyframes myball{ /*引用动画名称*/
-
form{
-
transform: translate(0);
-
}
-
to{
-
transform: translate(800px);
-
}
-
}
-
</style>
-
</head>
-
<body>
-
<div class="box"></div>
-
</body>
小球沿四周滚动
-
<style>
-
.box{
-
width: 100px;
-
height: 100px;
-
border-radius: 50%;
-
background-image: radial-gradient(#fff, #f01);
-
animation: myball; /*动画名称 */
-
animation-duration: 4s; /*动画的持续时间*/
-
animation-timing-function: linear; /*动画速度*/
-
animation-iteration-count: infinite; /*播放次数*/
-
animation-direction: normal; /* 动画播放方向 默认从开始-->结束 */
-
position: absolute;
-
}
-
/* 定义关键帧 */
-
@keyframes myball{ /*引用动画名称*/
-
0%{ /*初始位置*/
-
top: 0%;
-
left: 0%;
-
}
-
25%{
-
top: 0%;
-
left: 25%;
-
}
-
50%{
-
left: 25%;
-
top: 30%;
-
}
-
75%{
-
top: 30%;
-
left: 0%;
-
}
-
100%{
-
top: 0%;
-
left: 0%;
-
}
-
}
-
</style>
-
</head>
-
<body>
-
<div class="box"></div>
-
</body>
css实现动画轮播图
(第一张照片和最后一张照片相同,障眼法)
-
<style>
-
.banner{
-
width: 1200px;
-
height: 800px;
-
margin: 0 auto;
-
overflow: hidden;
-
}
-
.banner .pics{
-
white-space: nowrap;
-
animation-name: myball;
-
animation-duration: 4s;
-
animation-delay: 3s;
-
animation-iteration-count: infinite;
-
}
-
@keyframes myball{
-
0%{
-
transform: translateX(0);
-
}
-
33.3%{
-
transform: translateX(-100%);
-
}
-
66.6%{
-
transform: translateX(-200%);
-
}
-
100%{
-
transform: translateX(-300%);
-
}
-
}
-
</style>
-
</head>
-
<body>
-
<div class="banner">
-
<div class="pics">
-
<img src="../img/u=118559538,3056625584&fm=193&f=GIF.jpg" alt="">
-
<img src="../img/u=2304223962,4258741916&fm=193&f=GIF.jpg" alt="">
-
<img src="../img/u=4020132867,3167167932&fm=193&f=GIF.jpg" alt="">
-
<img src="../img/u=118559538,3056625584&fm=193&f=GIF.jpg" alt="">
-
</div>
-
</div>
-
</body>
走动的僵尸案例
-
<style>
-
.box{
-
position: relative;
-
overflow: hidden;
-
background-image: url(../img/walkingdead.png);
-
background-repeat: no-repeat;
-
width: 200px;
-
height: 305px;
-
margin: 0 auto;
-
animation-name: my;
-
animation-duration: 1s;
-
animation-timing-function: linear;
-
animation-iteration-count: infinite;
-
animation-direction: alternate; /*倒着走 可不要*/
-
animation-timing-function: steps(10);
-
}
-
@keyframes my{
-
0%{
-
background-position: 0 0;
-
}
-
100%{
-
background-position: -2000px 0;
-
}
-
}
-
</style>
-
</head>
-
<body>
-
<div class="box"> </div>
走动的川普
-
<style>
-
.box{
-
position: relative;
-
overflow: hidden;
-
background-image: url(../img/20200723191016712.png);
-
background-repeat: no-repeat;
-
width: 161px;
-
height: 105.5px;
-
margin: 0 auto;
-
animation-name: my;
-
animation-duration: 1s;
-
animation-timing-function: linear; /*匀速*/
-
animation-iteration-count: infinite; /*播放次数 infinite表示无限次*/
-
animation-timing-function: steps(4);
-
-
}
-
@keyframes my{
-
0%{
-
background-position: 0 0;
-
-
}
-
100%{
-
background-position: 0 -422px;
-
}
-
}
-
</style>
-
</head>
-
<body>
-
<div class="box">
-
-
</div>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbcjea
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01