100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > css动画改变高度有过渡效果 css3-形变 过渡 动画

css动画改变高度有过渡效果 css3-形变 过渡 动画

时间:2019-11-18 19:19:05

相关推荐

css动画改变高度有过渡效果 css3-形变 过渡 动画

一、2D形变

平移

transform:translate(x,y)

相对当前位置,向左移动x像素,像下移动y像素

transform:translateX(num)

相对当前位置,向左移动num像素

transform:translateY(num)

相对当前位置,向下移动num像素

缩放

transform:scale(x,y)

scale()方法,该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数

transform:scaleX( num )

改变元素的宽度

transform:scaleY( num )

改变元素的高度

旋转

transform:rotate( 角度 );

参数是一个角度,表示旋转多少度

倾斜

transform:skew(角度x,角度y)

沿着x轴旋转多少度,沿着y轴转多少度

transform:skewX(角度x)

沿着x轴旋转多少度

transform:skewY(角度y)

沿着y轴旋转多少度

二、3D形变

平移

transform:translate3d( x , y , z );

定义三个方向上的平移

transform:translateZ( z );

定义Z方向的平移(单用看不出效果)

缩放

transform: scale3d( x , y , z);

定义3个方向上的缩放,同时可以分别实现3个方向的分别设置

旋转

rotate3d( x , y , z , angle )

x,表示旋转轴X坐标方向的矢量。

y,表示旋转轴Y坐标方向的矢量。

z,表示旋转轴Z坐标方向的矢量。

angle,表示旋转角度。正的角度值表示顺时针旋转,负值表示逆时针旋转。

三、过渡

transition属性

通过transition,我们可以在不使用flash的情况下,让元素从一种样式变化成另一种样式

body{

position: relative;

}

#box{

height: 100px;

width: 100px;

background-color: skyblue;

transition: margin-left 3s;

}

// var box = document.querySelector("box");

box.onclick = function(){

this.style.marginLeft = "600px";

}

运行效果

GIF.gif

transition实现多个过渡

body{

position: relative;

}

#box{

/*如果动画的元素是margin,不能设置auto*/

height: 100px;

width: 100px;

background-color: pink;

position: absolute;

top: 20px;

transition: margin-left 3s,background-color 3s,border-radius 3s,top 3s;

}

//var box = document.querySelector("box");

box.onclick = function(){

this.style.marginLeft = "600px";

this.style.backgroundColor = "red";

this.style.borderRadius = "50px";

this.style.top = "100px";

}

运行效果

GIF.gif

利用伪元素实现transition过度

body{

position: relative;

}

#box{

/*如果动画的元素是margin,不能设置auto*/

height: 100px;

width: 100px;

background-color: pink;

position: absolute;

top: 20px;

transition: margin-left 3s,background-color 3s,border-radius 3s,top 3s;

}

#box:hover{

background-color: purple;

border-radius: 50px;

top: 50px;

}

运行结果

GIF.gif

利用transition实现3D动画过度

body{

position: relative;

}

#box{

/*如果动画的元素是margin,不能设置auto*/

height: 300px;

width: 300px;

margin: 15px 0 0 15px;

position: relative;

background: url(img/bg.jpg) round;

/*将来写有关动画相关的代码,要写兼容*/

/*transform-style: preserve-3d;*/

/*设置镜头距离*/

perspective: 20000px;

}

div img{

width: 130px;

height: 200px;

position: absolute;

top: 50px;

left: 85px;

transform-style: preserve-3d;

transform: rotateZ(180deg) rotateX(0) rotateY(0deg);

transition: all 3s;

}

div img:hover{

transform: rotateZ(0) rotateX(360deg) rotateY(180deg);

}

![](img/shu.jpg)

运行结果

GIF.gif

css3动画

如果用@keyframes 创建动画,把它绑定到一个选择器,否则动画不会有任何效果。

指定至少这两个CSS3的动画属性绑定向一个选择器:

规定动画的名称

规定动画的时长

from-to

#box{

height: 30px;

width: 30px;

background-color: blue;

animation: rect 3s linear 0.5s alternate 3 ;

}

@keyframes rect{

from{

transform: translate(0,0);

background-color: blue;

}

to{

transform: translate(200px,200px);

background-color: red;

}

}

运行效果

GIF.gif

百分比

#box{

height: 50px;

width: 50px;

background-color: blue;

animation: rect 3s linear infinite alternate;

}

@keyframes rect{

0%{

transform: translate(0,0);

background-color: blue;

}

25%{

transform: translate(300px,0px);

background-color: red;

border-radius: 50%;

}

50%{

transform: translate(300px,300px);

background-color: pink;

border-radius: 0;

}

75%{

transform: translate(0px,300px);

background-color: orange;

border-radius: 50%;

}

100%{

transform: translate(0px,0px);

background-color: yellow;

}

}

运行效果

GIF.gif

小案例(动画实现一个简易大风车)

.circle{

height: 200px;

width: 200px;

margin: 50px auto;

background-color: pink;

border-radius: 50%;

position: relative;

animation: rect 2s linear infinite;

}

.f1{

height: 80px;

width: 50px;

background-color: blue;

position: absolute;

left: 100px;

top: 20px;

border-top-right-radius: 100%;

}

.f2{

width: 80px;

height: 50px;

background-color: red;

position: absolute;

left: 100px;

top: 100px;

border-bottom-right-radius: 100%;

}

.f3{

height: 80px;

width: 50px;

background-color: orange;

position: absolute;

left: 50px;

top: 100px;

border-bottom-left-radius: 100%;

}

.f4{

height: 50px;

width: 80px;

background-color: green;

position: absolute;

left: 20px;

top: 50px;

border-top-left-radius: 100%;

}

@keyframes rect{

from{

transform: rotate(0);

}

to{

transform: rotate(360deg);

}

}

运行结果

GIF.gif

喜欢就点赞

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。