css3动画

html-css013

css3动画,第1张

css3 2D变形

1、位移:transform:translateX   x轴位移 

transform:translateY  y轴位移

同时写会被覆盖,所以用复合属性写

复合属性:transform:translate(100px,100px)第一个是x轴参数 第二个是y轴参数

起始点:00点,边框的左上角的顶点

transform:translate(100px  0,) x轴距离左边100px

transform:translate( 0,100px) y轴距离左边100px

2、缩放:transform:scale(2)里面的数字表示倍的意思

transform:scale(1)表示本身,不变

transform:scale(0.5)小于1表示缩小

transform:scale(0)表示缩小到消失

3、倾斜:transform:skew(ax,ay)表示x轴倾斜角度,y轴倾斜角度  单位是度数值deg

transform:skew(60deg,20deg)

x轴会改变宽度,y轴会改变高度

第一个表示x轴,按照逆时针方向进行旋转,宽度变化,高度不变

第二个表示y轴,按照顺时针方向进行旋转,高度变化,宽度不变

4、旋转:rotate()单位也是deg

只设置一个值表示沿中心点旋转

rotatex 沿x轴转

rotatey沿y轴转

transition: all 2s linear .5s/加在div上

过渡属性

过渡动画函数(( transition-timing-function )

指定浏览器的过渡速度,以及过渡期间的操作进展情况,通过给过渡添加一个函数来指定动画的快慢方式

linear

规定以相同速度开始至结束的过渡效果

ease

规定慢速开始,然后变快,然后慢速结束的过渡效果(默认值)

ease-in

规定以慢速开始的过渡效果

ease-out

规定以慢速结束的过渡效果

ease-in-out

规定以慢速开始和结束的过渡效果

/*

data:2022-11-17

author:lfp

move运动函数

dom--需要运动的对象

json--{width:100,height:100,left:100,top:100}

callback--回调函数 可调用自己 实现异步动画效果

*/

//主函数

function move(dom,json,callback){

//让每一次动画都是新的开始,防止出现动画一直不停的运行

if(dom.timer)clearInterval(dom.timer)

var i=0

var start=0

//在对象中增加timer 便于控制他停止

dom.timer=setInterval(function(){

i++

//循环每一个目标属性添加动画方法

for(var attr in json){

//获取当前attr的属性值 已经去除了px 还有 如果初始值是auto 用零代替

var cur=getStyle(dom,attr)

if(i==1)start=cur

//拿到该属性的目标值

var target=json[attr]

//设置分成10次增加增量 你可以根据需要修改

var speed=(target-start)/10

console.log(speed+"====="+cur)

//如果没有达到目标值就一直加

if(Math.abs(cur-target)>1){

dom.style[attr]=cur+speed+"px"

}else{

//达到目标值了就停止或者其他情况也停止

clearInterval(dom.timer)

//等停止了动画再回调函数进行另外的操作

if(callback)callback.call(dom)

}

}

},45)

}

//配套函数

function getStyle(dom,attr){

var value=""

if(window.getComputedStyle){

value=window.getComputedStyle(dom,false)[attr]

}else{

value=dom.currentStyle[attr]

}

value=parseInt(value)

return value || 0//如果你再样式中没有设置初始的值就会出现NaN 所以要用0来补充

}

function $(id){

//return document.getElementById(id)

return document.querySelector("#"+id)

}

一、实现CSS3无限循环动画代码示例。

代码如下:

CSS:

@-webkit-keyframes gogogo {

0%{

-webkit-transform: rotate(0deg)

border:5px solid red

}

50%{

-webkit-transform: rotate(180deg)

background:black

border:5px solid yellow

}

100%{

-webkit-transform: rotate(360deg)

background:white

border:5px solid red

}

}

.loading{

border:5px solid black

border-radius:40px

width: 28px

height: 188px

-webkit-animation:gogogo 2s infinite linear

margin:100px

}

扩展资料

实现动画无限循环所需要的CSS属性说明:

1、infinite

在animation后面加上infinite就可以无限循环,另外还可以做反向循环使用animation-direction

2、animation-name

规定需要绑定到选择器的 keyframe 名称。

3、animation-duration

规定完成动画所花费的时间,以秒或毫秒计。

4、animation-timing-function

规定动画的速度曲线。

5、animation-delay

规定在动画开始之前的延迟。

6、animation-iteration-count

规定动画应该播放的次数。

7、animation-direction

规定是否应该轮流反向播放动画。