收藏
回答

css动画执行完成后,通过点击事件使其反向执行?

如题,有没有办法,因为动画执行完成后,再执行需要先加载初始的style属性,看上去会闪一下,有没有办法解决?

回答关注问题邀请回答
收藏

2 个回答

  • 白夜.
    白夜.
    2022-08-12

    假设有一个动画需要让一个正方形从左往右改变宽度,变成一个长方形

    则需要设置动画A,把宽度变长,并设置animation-fill-mode: forwards;使其动画停留在最后一帧,此时图像中为长方形

    点击按钮,为当前的长方形再添加一个反向的css动画B,并设置animation-fill-mode: forwards;使其动画停留在最后一帧,则可不闪烁返回初始状态

    2022-08-12
    有用
    回复 2
    • 小猪快跑
      小猪快跑
      2022-08-12
      谢谢回复,透明度好像不行,就是那种竖形菜单,从上到下依次显示,然后点击一下从下到上依次显示。
      2022-08-12
      回复
    • 小猪快跑
      小猪快跑
      2022-08-12回复小猪快跑
      绕了一下算是解决了
      2022-08-12
      1
      回复
  • 慎独
    慎独
    2022-08-12

    1.首次渲染CSS3动画时闪烁BUG

    部分webkit内核手机浏览器在使用transform:translate属性时,会出现闪烁现象,解决方案大致有如下几种:

    
    -webkit-backface-visibility:hidden; //隐藏转换的元素的背面  
    
    -webkit-transform-style: preserve-3d; //使被转换的元素的子元素保留其 3D 转换  
    
    -webkit-transform:translate3d(0,0,0); //开启GPU硬件加速模式,使用GPU代替CPU渲染动画(在安卓系统中有时会有莫名其妙的BUG,建议慎重)  
    

    2.CSS3动画结束时闪烁

    如果你没有特别规定动画结束后的状态的话,动画在结束后都会直接跳回到动画未执行时候的原始状态,可参考animation-fill-mode属性。


    2022-08-12
    有用
    回复 1
    • 小猪快跑
      小猪快跑
      2022-08-12
      呃,不是首次闪烁,好像是设置了opacity从0到1,然后再反向从1到0的时候,会重新加载样式,forwards只是会停留在最后一帧,所以会闪,曲线救国解决了,谢谢回复。
      2022-08-12
      1
      回复
登录 后发表内容