【问题标题】:Material UI ghosting issueMaterial UI 重影问题
【发布时间】:2021-06-03 11:54:07
【问题描述】:

我正在使用 Material UI 中的 Switch 组件来展开/折叠列表中的元素。在 iOS 上的 Safari 中查看页面时,我遇到了重影问题,即在展开元素后,下一个元素中的开关通常仍然可见。这在使用过渡时尤其糟糕。但是当滚动时,幽灵开关消失了,一切看起来都很好。

这是 Material UI 问题还是其他问题?有什么办法可以解决吗?

https://codesandbox.io/s/material-ui-switch-ghost-issue-2ie26?file=/src/App.js

【问题讨论】:

    标签: reactjs material-ui


    【解决方案1】:

    Switch 波纹动画和Item 动画正在寻找资源来制作动画,而 Safari 似乎无法优化动画过程。

    因此,您可以在Item css 中添加will-change: transform; 以通知浏览器将有一个转换事件并准备好:

    const Item = styled.div`
      max-height: ${({ $isSelected }) => ($isSelected ? "20rem" : "2.5rem")};
      will-change: transform;
      transition: max-height 0.1s ease-out;
      overflow: hidden;
      background: gray;
      margin-bottom: 0.2rem;
    `;
    

    will-change的定义:

    https://developer.mozilla.org/en-US/docs/Web/CSS/will-change


    可行的代码框:

    https://codesandbox.io/s/material-ui-switch-ghost-issue-forked-fgqqx

    【讨论】:

    • 看起来成功了。非常感谢!我不知道那个 CSS 属性。很高兴知道。 :-)
    猜你喜欢
    • 1970-01-01
    • 2019-09-20
    • 2018-12-02
    • 2017-08-19
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多