jjzjj

CSS3动画属性 animation详解(看完就会)

坚毅的小解同志 2024-04-08 原文

CSS3动画属性 animation 文章包含个人理解错误请指出

 

  往期文章

【css高级】变量详解

轮播图swiper框架的基本使用
【Transform3D】转换详解(看完就会)

【css动画】移动的小车

【CSS3】 float浮动与position定位常见问题(个人笔记)

如何完成响应式布局,有几种方法?看这个就够了

详解 CSS3中最好用的布局方式——flex弹性布局(看完就会)

[前端CSS高频面试题]如何画0.5px的边框线(详解)
CSS3基础属性大全
CSS3动画属性 animation详解(看完就会)
CSS3 transform 2D转换之移动 旋转 缩放(详细讲解看完就会)
CSS3 Z—Index 详解
CSS3 positon定位详解(通俗易懂)


目录

keyframes

动画相关的值

 animation-name animation-duration

animation-timing-function animation-delay

 animation-iteration-count   animation-play-state

animation-direction  animation-fill-mode 

animation


keyframes

用 keyframes定义动画,写上动画要执行的内容, (类似类选择器)

  @keyframes a {
            0% {
                width: 300px;
            }

            100% {
                width: 600px;
            }
        }

这就是定义了一个动画变量名,从0%到100%也就是从开始到结束,也可以用from,to来表示,

  @keyframes a {
            from {
                width: 300px;
            }

            to {
                width: 600px;
            }
        }

里面写属性变化的值,不止可以分两个段也可以进行多段分割

  @keyframes a {
            0% {
                width: 300px;
            }

            50% {
                width: 800px;
            }

            100% {
                width: 300px;
            }
        }

,用百分数进行分割。

动画相关的值


@keyframes 规定动画
animation-name 规定 @keyframes 动画的名称(必须的)
animation-duration 规定动画完成一个周期所花费的秒或毫秒,默认是 0(必须的)
animation-timingfunction  规定动画的速度曲线,默认是“ease”
animation-delay 规定动画何时开始,默认是 0
animation-iteration-count 规定动画被播放的次数,默认是 1,还有 infinite
animation-direction 规定动画是否在下一周期逆向播放,默认是 "normal", alternate 逆播放
animation-play-state 规定动画是否正在运行或暂停。默认是 "running", 还有 "paused"

animation 所有动画属性的简写属性,除了animation-play-state 属性

 animation-name animation-duration

 <style>
        @keyframes a {
            0% {
                width: 300px;
            }

            50% {
                width: 800px;
            }

            100% {
                width: 300px;
            }
        }

        div {
            animation-name: a;
            animation-duration: 2s;
        }
    </style>
    <script>
    </script>
</head>

<body>
    <div style='background-Color:red;width: 300px;height:300px ;'></div>
</body>

 刷新之后就自动触发动画,执行的动画变量名是a,两秒内完成动画,也就是从0%到100%两秒内完成。

animation-timing-function animation-delay

linear

动画从头到尾的速度是相同的。

ease

默认。动画以低速开始,然后加快,在结束前变慢。

ease-in

动画以低速开始。

ease-out

动画以低速结束。

ease-in-out

动画以低速开始和结束。

cubic-bezier(n,n,n,n)

在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值

@keyframes a {
            0% {
                width: 300px;
            }

            50% {
                width: 800px;
            }

            100% {
                width: 300px;
            }
        }

        div {
            animation-name: a;
            animation-duration: 5s;
            animation-timing-function: ease-in-out;
            animation-delay: 2s;
        }

 

animation-timing-function 动画开始和结束慢速

animation-delay 动画延迟两秒开始。

 animation-iteration-count   animation-play-state

  @keyframes a {
            0% {
                width: 300px;
            }

            50% {
                width: 800px;
            }

            100% {
                width: 300px;
            }
        }

        div {
            animation-name: a;
            animation-duration: 5s;
            animation-timing-function: ease-in-out;
            animation-delay: 2s;
            animation-iteration-count: infinite;
        }

        div:hover {
            animation-play-state: paused;
        }

 

animation-iteration-count  循环次数,infinite重复循环

animation-play-state paused 停止动画  当鼠标移入动画停止

animation-direction  animation-fill-mode 

animation-direction

normal默认值。动画按正常播放。
reverse动画反向播放。
alternate动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。
alternate-reverse动画在奇数次(1、3、5...)反向播放,在偶数次(2、4、6...)正向播放。
initial设置该属性为它的默认值。请参阅 initial
inherit从父元素继承该属性。请参阅 inherit
  @keyframes a {
            0% {
                width: 300px;
            }

            50% {
                width: 500px;
            }

            100% {
                width: 800px;
            }
        }

        div {
            animation-name: a;
            animation-duration: 5s;
            animation-timing-function: ease-in-out;
            animation-delay: 2s;
            animation-iteration-count: infinite;
            /* animation-fill-mode: forwards; */
            animation-direction: alternate;
        }

        div:hover {
            animation-play-state: paused;
        }

animation-iteration-count:infinite  重复循环  animation-direction:alternate 在偶数次反向播放

就形成了  长度 一直来回变化的效果

animation-fill-mode  

 保持 最终状态 forwards 原位置 backwards

  @keyframes a {
            0% {
                width: 300px;
            }

            50% {
                width: 500px;
            }

            100% {
                width: 800px;
            }
        }

        div {
            animation-name: a;
            animation-duration: 5s;
            animation-timing-function: ease-in-out;
            animation-delay: 2s;
            animation-fill-mode: forwards;
        }

        div:hover {
            animation-play-state: paused;
        }

  animation-fill-mode: forwards  宽度到达800后 停止动画 保持在动画执行完毕的状态 不会恢复

animation

直接写出所有的相关动画属性(简写),除了animation-play-state 属性。

animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的状态。
 

 @keyframes a {
            0% {
                width: 300px;
            }

            50% {
                width: 500px;
            }

            100% {
                width: 800px;
            }
        }

        div {
            animation: a 5s ease-in-out 2s infinite alternate;
        }

        div:hover {
            animation-play-state: paused;
        }

  

有关CSS3动画属性 animation详解(看完就会)的更多相关文章

  1. ruby - capybara field.has_css?匹配器 - 2

    我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No

  2. ruby-on-rails - 如果为空或不验证数值,则使属性默认为 0 - 2

    我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val

  3. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  4. ruby - 多个属性的 update_column 方法 - 2

    我有一个具有一些属性的模型:attr1、attr2和attr3。我需要在不执行回调和验证的情况下更新此属性。我找到了update_column方法,但我想同时更新三个属性。我需要这样的东西:update_columns({attr1:val1,attr2:val2,attr3:val3})代替update_column(attr1,val1)update_column(attr2,val2)update_column(attr3,val3) 最佳答案 您可以使用update_columns(attr1:val1,attr2:val2

  5. ruby - Nokogiri 剥离所有属性 - 2

    我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog

  6. ruby-on-rails - Rails 模型——非持久类成员或属性? - 2

    对于Rails模型,是否可以/建议让一个类的成员不持久保存到数据库中?我想将用户最后选择的类型存储在session变量中。由于我无法从我的模型中设置session变量,我想将值存储在一个“虚拟”类成员中,该成员只是将值传递回Controller。你能有这样的类(class)成员吗? 最佳答案 将非持久属性添加到Rails模型就像任何其他Ruby类一样:classUser扩展解释:在Ruby中,所有实例变量都是私有(private)的,不需要在赋值前定义。attr_accessor创建一个setter和getter方法:classUs

  7. css - 用 watir 检查标签类? - 2

    我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes

  8. Unity 3D 制作开关门动画,旋转门制作,推拉门制作,门把手动画制作 - 2

    Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u

  9. ruby - Chef Ruby 遍历 .erb 模板文件中的属性 - 2

    所以这可能有点令人困惑,但请耐心等待。简而言之,我想遍历具有特定键值的所有属性,然后如果值不为空,则将它们插入到模板中。这是我的代码:属性:#===DefaultfileConfigurations#default['elasticsearch']['default']['ES_USER']=''default['elasticsearch']['default']['ES_GROUP']=''default['elasticsearch']['default']['ES_HEAP_SIZE']=''default['elasticsearch']['default']['MAX_OP

  10. ruby - 获取数组中的值并最小化某个类属性的最优雅的方法是什么? - 2

    假设我有以下类(class):classPersondefinitialize(name,age)@name=name@age=ageenddefget_agereturn@ageendend我有一组Person对象。是否有一种简洁的、类似于Ruby的方法来获取最小(或最大)年龄的人?如何根据它对它们进行排序? 最佳答案 这样做会:people_array.min_by(&:get_age)people_array.max_by(&:get_age)people_array.sort_by(&:get_age)

随机推荐