每天进步一点点2021.11.4 css动画之transition

简单介绍

前面介绍了css的animation动画及其属性,

这次要说的也是css的一种动画实现–transition

两者有一个很大的区别,transition是需要css或js事件触发的动画。

举个例子:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      width: 50px;
      height: 50px;
      background-color: pink;
      transition: width 3s;
    }
    div:hover {
      width: 200px;
    }
  </style>
</head>
<body>
  <div></div>
</body>
</html>

把鼠标悬停在盒子上,会发现盒子宽度变大。

然后鼠标移出盒子,盒子宽度缩小回原来大小。

在这里插入图片描述

注意,事件里只写变化后的结果,transition要写在目标css里。

再来一个和js事件交互的例子:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      width: 50px;
      height: 50px;
      background-color: pink;
    }
  </style>
</head>
<body>
  <div></div>
  <script>
    var div = document.querySelector('div');
    div.onclick = function() {
      div.style.width = '200px';
      div.style.transition = 'width 2s';
    }
  </script>
</body>
</html>

在这里插入图片描述

点击盒子,可以看到盒子宽度变化到最大。(但是这里不会缩小回原来的宽度)

属性介绍
transition-property

意思是可以过渡变化的css属性,比如例子中的宽度width 。 还有一个总括的值all ,同时也是默认值 。

all对列出的所有属性都进行过渡。

例如:

transition: all 2s; 也可以写作transition: 2s;

再举个例子:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      width: 50px;
      height: 50px;
      background-color: pink;
      transition: 2s;
    }
    div:hover {
      width: 200px;
      height: 200px;
    }
  </style>
</head>
<body>
  <div></div>
</body>
</html>

在这里插入图片描述

当鼠标放在盒子上,宽度和高度都进行了过渡动画。这时候的all就代表了widthheight两个属性。例子中的all省略了,因为all是默认值。

transition-duration

意思是持续时间。 也就是完成这个动画过渡所规定的时长,比如例子中的2s 。 这个值如果是0, 过渡动画就无效。

transition-timing-function

意思是过渡的运动方式,和ainimation里的值一样。

transition-delay

意思是延迟多长时间才开始执行过渡动画。

兼容性

这是一个比较新的css属性。如果用ie显示过渡动画,必须要ie10版本及以上。

多个过渡动画

如果同一个属性,需要做多个过渡动画,要用,隔开。

举个例子,先让宽度展开,高度延迟1s逐步展开:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      width: 50px;
      height: 50px;
      background-color: pink;
      transition: width 2s, height 2s steps(10, end) 1s;
    }
    div:hover {
      width: 200px;
      height: 200px;
    }
  </style>
</head>
<body>
  <div></div>
</body>
</html>

效果:

在这里插入图片描述


参考文档
  • https://www.w3school.com.cn/cssref/pr_transition.asp
  • https://www.cnblogs.com/xiaohuochai/p/5347930.html
  • https://developer.mozilla.org/zh-CN/docs/Web/CSS/transition

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值