CSS动画之transition属性

transition 属性

简介

transition(过渡)) 是指从一个状态到另一个状态的变化。比如当鼠标在某个元素上悬停时,我们会修改它的样式,采用 transition 可以创建一个平滑的动画效果。

简单用法

代码

transition: background 0.5s linear;

意义

在 0.5 秒的时间里,按照 linear 的时间函数(timing-function)来改变某个元素的 background 属性。

示例

当鼠标在按钮上悬停时(hover)改变按钮的 background。

  • html

    <button>按钮</button>
  • css
    button {
        padding:1em 2em;
        background: #fff;
        transition: background 1s linear;
    }
    
    button:hover {
        background: deeppink;
    }
  • 效果

如果我们把 transition: background 1s linear 放到hover中则只有鼠标离开时才有动画效果;

简写transition全部参数

transition:[property] [duration] [delay] [timeing-function]

transition全写

  • transition-property:all; /* 规定过渡css属性名称 */
  • transition-duration: 1s;/* 过渡持续时间 3s===31000ms /
  • transition-delay: 0.1s;/* 过渡效果延迟开始时间 */
  • transition-timing-function: ease-in;/* 时间函数 */

时间函数Steps()

参数

  1. 动画完成步数

    • 参数类型:Number
  2. 第一个步进点
    • 参数:start/end
    • 默认:end

示例

  • html

      <div id="block"></div>
  • css
      #block{
          position: absolute;
          left: 50%;
          top: 30%;
          transform: translateX(-50%);
          width: 12em;
          height: 12em;
          background: #000;
          transition: all 1s steps(5,end);
          /*transition: all 1s linear;*//*平滑过渡*/
      }
    
      #block:hover{
          width: 2em;
          height: 2em;
      }
  • 效果


添加多个过渡

  • html

      <div id="block"></div>
  • css
      #block{
          position: absolute;
          left: 50%;
          top: 30%;
          transform: translateX(-50%);
          width: 12em;
          height: 12em;
          background: #000;
          transition: width 1s linear,height 1s linear,background 1s ease-in-out;
      }
    
      #block:hover{
          background: burlywood;
          width: 2em;
          height: 2em;
      }
  • 效果


添加移除类触发过渡

简单示例

  • 效果

  • html
<body>
    <button id="show">Show it</button>
    <div id="wait-show" class="hide">
        <h1>Title</h1>
        <p>Pressing the button shows this content.</p>
    </div>
</body>
  • css
body {
  background-color: #134;
  transition: background 0.5s ease-out;
  font-family: HelveticaNeue, Arial, Sans-serif;
}
body.on {
  background-color: #099;
}

button{
  background: transparent;
  border: 2px solid #fff;
  border-radius: 1em;
  color: #fff;
  cursor: pointer;
  font-size: 24px;
  padding: 1em 2em;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.4s ease-out;
  outline: 0;
}

button:hover{
  background: #fff;
  color: #099;
}

#wait-show{
  color: #fff;
  text-align: center;
  position: absolute;
  left: 50%;
  transform: translate(-50%,-50%);
  transition: all 0.5s cubic-bezier(.83,-0.43,.21,1.42);
}

.hide{
  opacity: 0;
  top:calc(50% + 10em);
}

.show{
  opacity: 1;
  top: calc(50% + 6em);
}
  • js
 let showBtn = document.getElementById('show');
    let body = document.body;
    let waitShow = document.getElementById('wait-show');

    /**
    * 监听点击事件
    */
    showBtn.addEventListener('click', function (e) {
        // 更改body颜色
        body.className = body.className === 'on' ? '' : 'on';

        waitShow.className = waitShow.className === 'hide' ? 'show' : 'hide';
    })
    document.getElementsByTagName('body')

原文地址:https://www.cnblogs.com/roseAT/p/12089319.html

时间: 2024-11-11 13:09:48

CSS动画之transition属性的相关文章

前端深入之css篇丨2020年前,彻底掌握css动画【transition】

原文:前端深入之css篇丨2020年前,彻底掌握css动画[transition] 写在前面 马上就2020年了,不知道小伙伴们今年学习了css3动画了吗? 说起来css动画是一个很尬的事,一方面因为公司用css动画比较少,另一方面大部分开发者习惯了用JavaScript来做动画,所以就导致了许多程序员比较排斥来学习css动画(至少我是),但是一个不懂css动画的前端工程师不能称之为掌握css3,其实当你真正学习css动画之后,你会被它的魅力所吸引的,它可以减少代码量.提高性能. 话不多说,马上

web前端入门到实战:彻底掌握css动画【transition】

马上就2020年了,不知道小伙伴们今年学习了css3动画了吗? 说起来css动画是一个很尬的事,一方面因为公司用css动画比较少,另一方面大部分开发者习惯了用JavaScript来做动画,所以就导致了许多程序员比较排斥来学习css动画(至少我是),但是一个不懂css动画的前端工程师不能称之为掌握css3,其实当你真正学习css动画之后,你会被它的魅力所吸引的,它可以减少代码量.提高性能. 话不多说,马上和我一起去学习今天的主角transition吧! transition 语法 值 描述 tra

css动画-animation各个属性详解(转)

CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题. 一.动画属性: 动画属性包括:①animation-name,②animation-duration,③animation-timing-function, 以下是各属性详解: 1.animation-name:指定要绑定到选择器的关键帧的名称. 2.animation-duration:定义动画完成一个周期需要多少秒或毫秒 3.a

css 动画 transform transition animation

1.transform  transform 是通过在浏览器里面让网页元素 移动 旋转 透明 模糊 等方法来实现改变其外观的技术 -webkit-transform : translate(3em,0);想右移动3em,向下移动0em -webkit-transform : rotate(30deg);顺时针旋转30度 -webkit-transform : translate(-3em,1em);向左移动3em,向下移动1em -webkit-transform : scale(2);尺寸放大

css3动画(transition)属性探讨

在webapp引用开发中经常会用到css3动画效果,下面我们就一起探讨一下这个属性的使用. 在哪里定义动画效果? css3动画一般通过鼠标事件或者说状态定义动画,通常我们可以用CSS中伪类和js中的鼠标事件来定义.js的事件也可以,比如click,focus,mousemove,mouseover,mouseout等等 transition的基本语法: css3动画通过transition属性和其他css属性(颜色,宽高,变形,位置等等)配合来实现. transition的语法: Java代码 

JS动画与CSS动画

一.JS动画(setInterval setTimeOut requestAnimationFrame) 优点: 1)过程控制能力强.可以对动画工程进行精准的控制,暂停.取消.开始.终止都可以. 2)动画效果多.炫酷.有一些效果是CSS动画所不能实现的 3)兼容性比较高 缺点: 1)由于JS是通过不断的操作DOM和CSS的属性来实现动画效果的,这需要不断的重排(reflow)和重绘(repaint),非常消耗浏览器的内存.(在PC端有浏览 器可以分配的内存比较大,动画的重排(reflow)和重绘

CSS动画实例

上一篇讲过css动画transform transition的语法,这一节展示自己做的几个小例子加深印象 1. 线条动画效果 代码:最外层div包含2个小的div : a和b.   a有左右边框(高度变化), b有上下边框(宽度变化), 默认不显示,鼠标移上去时,a的高度和b的宽度发生变化,交叉效果 <style> *{margin:0;padding:0;} .main{ width: 300px; height: 300px; background: #333; position: rel

CSS3与动画有关的属性transition、animation、transform对比

最近应公司需求,需要用css3做动画,终于把以前一直傻傻分不清楚的三个属性理解了. 索性在这里进行一个简单的对比,加深自己的记忆. 浏览器兼容性 CSS3 transform 属性 Internet Explorer 10.Firefox.Opera 支持 transform 属性. Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换). Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D

CSS动画 animation与transition

一.区分容易混淆的几个属性和值 先区分一下css中的几个属性:animation(动画).transition(过渡).transform(变形).translate(移动). CSS3中的transform(变形)属性用于内联元素和块级元素,可以旋转.扭曲.缩放.移动元素,它的属性值有以下五个:旋转rotate.扭曲skew.缩放scale和移动translate以及矩阵变形matrix: transform(变形)是CSS3中的元素的属性,而translate只是transform的一个属性