美文网首页
react-transition-group 列表动画,退出闪烁

react-transition-group 列表动画,退出闪烁

作者: 南慕瑶 | 来源:发表于2020-12-19 17:31 被阅读0次

    【场景】

    @keyframes t-tree-toggle {

      0% {

        opacity: 0;

        height: 0;

      }

      50% {

        opacity: 0;

        height: 40px;

      }

      100% {

        opacity: 1;

        height: 40px;

      }

    }

    进入执行 t-tree-toggle,退出执行 t-tree-toggle reverse。

    退出时,节点闪烁!

    【原因分析】

    动画执行完毕时,节点还未卸载。节点卸载的延迟时间差,造成了闪现效果。

    【解决方案】

    1、在退出动画设置的同时,手动设置退出后的样式。确保在节点卸载前,样式就已经稳定置为节点退出后的样式。从而防止闪烁。

    .tree--fx {

      .tree-toggle-enter-active {

        animation: t-tree-toggle  .3s linear;

      }

      .tree-toggle-exit-active {

        animation: t-tree-toggle .3s reverse linear;

        opacity: 0; // 防止 react-transition-group 卸载节点,页面闪烁!

        height: 0; // 防止 react-transition-group 卸载节点,页面闪烁!

      }

    }

    2、使用 animation-fill-mode

    为退出动画设置 animation-fill-mode: forwards;

      .tree-toggle-exit-active {

        animation: t-tree-toggle .3s reverse linear;

        animation-fill-mode: forwards;   // 防止 react-transition-group 卸载节点,页面闪烁!

      }

    相关文章

      网友评论

          本文标题:react-transition-group 列表动画,退出闪烁

          本文链接:https://www.haomeiwen.com/subject/frybgktx.html