前端笔记:css3动画transition和animation

简介: 前端笔记:css3动画transition和animation

css3动画

分类:

  • 帧动画
  • 过渡动画

CSS3动画属性:

  • transition
  • animation

常用属性

  • transform

动画库:

  • swiper
  • vue-transition
  • svg
  • animate.css

transition过渡

语法

transition: property duration timing-function delay;


属性名称property


过渡时间duration


时间函数timing-function


延迟时间delay


2、注意:


display不能和transition一起使用


transition后面尽量不要跟all


常见闪动可以persp和backface-visibility

.box{
    width: 200px;
    height: 200px;
    background-color: #000000;
    margin-bottom: 20px;
}
// 鼠标经过变化宽度
.trasition-1{
    // transition: width 2s linear 1s;
    transition: width 2s linear;
    &:hover{
        width: 500px;
    }
}
// 鼠标经过旋转
.trasition-2{
    transition: transform 2s ease-out;
    &:hover{
        transform: rotate(45deg);
    }
}

animation动画

语法

animation: name duration timing-function delay iteration-count direction fill-mode play-state;

动画名称(name)@keyframes


过渡时间(duration)


时间函数(timing-function)


延迟时间(delay)


播放次数(iteration-count)


播放方向(direction)轮流播放和反向播放


停止播放的状态(fill-mode)


是否暂停(play-state)

.box{
    width: 200px;
    height: 200px;
    background-color: #000000;
    margin-bottom: 20px;
}
// 鼠标经过移动
.animation-1{
    &:hover{
        animation: move 2s linear;
    }
}
@keyframes move{
    100%{
        transform: translateX(200px);
    }
}
// 小球滚动
.animation-2{
    border-radius: 50%;
    animation: jump 2s cubic-bezier(0.4,-0.04, 0.94, 0.29) infinite;
}
@keyframes jump{
    0%{
        transform: translateX(0px);
    }
    40%{
        transform: translateX(200px);
    }
    60%{
        transform: translateX(200px);
        clip-path: ellipse(50% 50% at 50% 50%);
    }
    100%{
        transform: translateX(0px);
        clip-path: ellipse(50% 45% at 50% 48%);
    }
}
// 菊花图旋转
.animation-3{
    width: 100px;
    height: 111px;
    animation: round 1s steps(12) infinite;
    background: url(./loading.jpg) no-repeat;
}
@keyframes round{
    100%{
        transform: rotate(360deg);
    }
}

时间函数

时间函数:管理动画在单位帧内播放的速度曲线

三次贝塞尔函数的数学函数

预设值:

  • linear 匀速
  • ease
  • ease-in
  • ease-out
  • ease-in-out

steps作用是每一个关键帧,而不是整个时间

过渡和动画在js中的监听

animationstart

animationend

trasitionend

animationitertion

// 过渡事件监听
let transitionend = ()=>{
    console.log("transitionend");
}
let $box = document.querySelector('.trasition-1');
// IE FireFox已经支持
$box.addEventListener("transitionend", transitionend);
// 360 safari chrome下需要兼容处理
$box.addEventListener("WebkitTransitionend", transitionend);
相关文章
|
4月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
245 1
|
4月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
368 0
|
4月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
358 2
|
4月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
513 0
|
JavaScript 前端开发 Java
前端网页开发学习(HTML+CSS+JS)有这一篇就够!(二)
前端网页开发学习(HTML+CSS+JS)有这一篇就够!(二)
655 0
|
前端开发 数据安全/隐私保护
前端网页开发学习(HTML+CSS+JS)有这一篇就够!(一)
前端网页开发学习(HTML+CSS+JS)有这一篇就够!(一)
291 0
|
前端开发
前端知识学习案例10-tailWind Css+vite2.0-部署项目
前端知识学习案例10-tailWind Css+vite2.0-部署项目
262 0
前端知识学习案例10-tailWind Css+vite2.0-部署项目
|
前端开发
前端知识学习案例8-tailWind Css+vite2.0-前后端连接
前端知识学习案例8-tailWind Css+vite2.0-前后端连接
119 0
前端知识学习案例8-tailWind Css+vite2.0-前后端连接
|
前端开发
前端知识学习案例7-tailWind Css+vite2.0-notionApi之2
前端知识学习案例7-tailWind Css+vite2.0-notionApi之2
117 0
前端知识学习案例7-tailWind Css+vite2.0-notionApi之2
|
前端开发
前端知识学习案例5-tailWind Css+vite2.0-事件交互
前端知识学习案例5-tailWind Css+vite2.0-事件交互
149 0
前端知识学习案例5-tailWind Css+vite2.0-事件交互