css的过渡transition和动画animation

过渡

过渡(transition)是CSS3中具有颠覆性的特性之一,我们可以在不使用Flash动画或JavaScript的情况下,当元素从一种样式变换为另一种样式时元素添加效果。
过渡动画:是从一个状态渐渐的过渡到另一个状态。低版本浏览器不支持,但是不影响页面布局。经常和:hover一起搭配使用。

 
属性 描述 取值范围
transition-property 应用过渡效果的 CSS 属性名 CSS属性都可以(all, width, color ...)
transition-duration 过渡效果持续时间 秒和毫秒都可以, 1s   1000ms ...
transition-timing-function 过渡效果展示方式 linear(匀速),  ease(开始慢、中间快、结束慢,默认可省略)
transition-delay 过渡效果延迟时间 秒和毫秒都可以, 1s   1000ms ...

 

<style>
  div{
    width: 200px;
   height: 100px;
    background-color: pink;
    transition: width 1s ease 0s,height 2s ease 1s;
    // transition:要过渡的属性    花费的时间   运动曲线    何时开始;
      
    transition-property: width;
    transition-duration: 1s;
    transition-timing-function: linear;
    transition-delay: 2s;
    /* Safari */
    -webkit-transition-property: width;
    -webkit-transition-duration: 1s;
    -webkit-transition-timing-function: linear;
    -webkit-transition-delay: 2s;
  }
  div:hover{
    width:400px;
  }
</style>

 

 

//完整代码块

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>过渡</title>
</head>
<style type="text/css">
  div {
    float: left;
    margin-right: 10px;
    width: 200px;
    height: 200px;
    text-align: center;
    line-height: 200px;
    background-color: skyblue;
  }
 
  /* 鼠标悬停时改变盒子颜色 */
  div:hover {
    background-color: aqua;
    transition: all .8s linear 0s;
  }
</style>
<body>
<div></div>
</body>
</html>

 

动画

动画(animation)是使元素从一种样式逐渐变化为另一种样式的效果。

您可以改变任意多的样式任意多的次数。

请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。

0% 是动画的开始,100% 是动画的完成。

为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

 

描述
animation-name 规定需要绑定到选择器的 keyframe 名称。。
animation-duration 规定完成动画所花费的时间,以秒或毫秒计。
animation-timing-function 规定动画的速度曲线。
animation-delay 规定在动画开始之前的延迟。
animation-iteration-count 规定动画应该播放的次数。
animation-direction 规定是否应该轮流反向播放动画。默认是 "normal"。
animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。
animation-fill-mode 规定对象动画时间之外的状态。

 

/* 动画代码 */
@keyframes example {
  from {background-color: red;}
  to {background-color: yellow;}
}

/* 向此元素应用动画效果 */
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}

 

// 完整代码块
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>animation</title>
</head>
<style type="text/css">
  div {
    float: left;
    margin-right: 10px;
    width: 200px;
    height: 200px;
    text-align: center;
    line-height: 200px;
    background-color: skyblue;
    position: absolute;
    border-radius: 50%;
  }

  div {
    animation: myfirst 5s linear 2s infinite alternate;
  }

  @keyframes myfirst {
    0%   {background: red; left:0px; top:0px;}
    25%  {background: yellow; left:200px; top:0px;}
    50%  {background: blue; left:200px; top:200px;}
    75%  {background: green; left:0px; top:200px;}
    100% {background: red; left:0px; top:0px;}
  }

</style>
<body>
<div></div>
</body>
</html>

 

posted @ 2022-04-26 14:08  有只橘猫  阅读(435)  评论(0编辑  收藏  举报