H5C3(transition过度)

transition过渡

1. 过渡是怎么回事

  • 假如某个css属性 P,它有一个初始值a,再设一个初始值b。指定P属性是可以过渡显示的,那么当P从a变到b时,会有一个动画的效果。

  • 注意: 伪类的过渡会还原,非伪类元素动画执行完成后,会保存动画完成时的状态

  • transtion的几个属性:

    • transition-property: 就是上面那个P,比如说你指定width发生变化, 就填width;

    • transition-duration: 动画的时间 多少秒 比如 1s

    • transition-timing-function: 动画执行的速度效果

    • transition-delay: 延迟几秒执行

2. 过渡的复合写法

  1. 某一个属性发生变化时,执行动画

    • transition: width 1s linear 2s;

    • width: 指定元素的width发生变化时,发生动画

    • 1s: 指定动画时长为1s

    • linear: 指定动画为匀速

    • 2s: 指定延时两秒执行

  2. 所有属性变化时, 都执行动画

    • transition: all 1s linear;

    • all代表所有属性,只要发生变化都执行动画,时长都是1秒

    • 但如果各个属性执行动画的时长不一样呢?

  3. 几个属性变化时,各自执行动画

    • transition: width 1s linear, height 1s ease 1s;

    • 代表width和height都会动画,但各自有自己的动画的参数;

  4. 多个属性动画,分开写(如果参数相同,可以合并)

    • 可以多个属性分开写

      transition-property: width, height;
      transition-duration: 1s; /*代表都是执行一秒,合并了*/
      transition-timing-function: ease, ease-in;
      transition-delay: 2s;

3. transtion支持的属性

  • transition-property是用来指定当元素其中一个属性改变时执行transition效果: 所支持的属性类型如下:

    • color: 通过红、绿、蓝和透明度组件变换(每个数值处理)如:background-color,border-color,color,outline-color等css属性;

    • length: 真实的数字 如:word-spacing,width,vertical-align,top,right,bottom,left,padding,outline-width,margin,min-width,min-height,max-width,max-height,line-height,height,border-width,border-spacing,background-position等属性;

    • percentage:真实的数字 如:word-spacing,width,vertical-align,top,right,bottom,left,padding,outline-width,margin,min-width,min-height,max-width,max-height,line-height,height,border-width,border-spacing,background-position等属性;

    • integer离散步骤(整个数字),在真实的数字空间,以及使用floor()转换为整数时发生 如:outline-offset,z-index等属性;

    • number真实的(浮点型)数值,如:zoom,opacity,font-weight,等属性;

    • transform list

    • rectangle:通过x, y, width 和 height(转为数值)变换,如:crop

    • visibility: 离散步骤,在0到1数字范围之内,0表示“隐藏”,1表示完全“显示”,如:visibility

    • shadow: 作用于color, x, y 和 blur(模糊)属性,如:text-shadow

    • gradient: 通过每次停止时的位置和颜色进行变化。它们必须有相同的类型(放射状的或是线性的)和相同的停止数值以便执行动画,如:background-image

    • paint server (SVG): 只支持下面的情况:从gradient到gradient以及color到color,然后工作与上面类似space-separated list of above:如果列表有相同的项目数值,则列表每一项按照上面的规则进行变化,否则无变化

    • a shorthand property: 如果缩写的所有部分都可以实现动画,则会像所有单个属性变化一样变化

3. 附录:动画速度样式详解

  • linear: 线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0)

  • ease: 平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0)

  • ease-in: 由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0)

  • ease-out: 由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0)

  • ease-in-out: 由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)

  • step-start: 等同于 steps(1, start)

  • step-end: 等同于 steps(1, end)

  • steps(integer): 分多少步完成

transition过渡属性是用来控制元素在CSS样式改变时的平滑过渡效果的。它可以让CSS的变化由生硬变得更加平滑。 transition属性可以在一个语句中同时定义过渡的时间、延迟时间、动画函数和属性,也可以分别使用transition-property、transition-duration、transition-delay和transition-timing-function来分别设置属性的过渡效果。 transition的优点在于简单易用,可以通过设置过渡属性实现元素的显示和消失切换效果。然而,它也有一些限制。首先,transition需要事件触发才能发生,无法在网页加载时自动发生。其次,transition是一次性的,不能重复发生,除非再次触发。此外,transition只能定义开始状态和结束状态,无法定义中间状态。最后,一条transition规则只能定义一个属性的变化,无法涉及多个属性。针对这些限制,可以使用Animation来解决。 因此,transition过渡属性可以通过定义过渡的时间、延迟时间、动画函数和属性来实现元素样式的平滑过渡效果,但是它也有一些限制,需要根据具体需求选择合适的方法来实现过渡效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [关于transition过渡的详解](https://blog.csdn.net/Zgtby/article/details/117452771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值