Safari - css3 过渡不渲染

safari - css3 transition not rendering

使用 Sass/Bourbon/Neat,请注意语法。

我有一个滚动事件观察器,它向元素添加 class。我已经为元素设置了过渡,让它们很好地缓和。

在 Safari、桌面和移动设备中,它是成功的还是失败的,但当 class 更改时它似乎没有呈现样式。

这不会发生在每个视图上,也不会始终发生。有时会加载,有时不会。

难道跟变换一点关系都没有?也许 Safari 只是没有一直全神贯注于样式表?

我已经确认 class 正在添加到 safari 中,这在所有其他浏览器中都有效。

.header-box {
    position: fixed;
    z-index: 99999999999999999;
    top: 0;
    left: 0;
    width: 100%;
    padding-top: 1em;
    padding-bottom: 0.3em;
    @include transition(All 0.5s ease);

    &.nav-scroll {
        border-bottom: 2px solid $color__brand-light-grey;
        background-color: $color__brand-white;
    }
}

safari 中显然存在一个错误,将多个转换应用于分层元素。因此,如果父级有过渡,它不会总是呈现子级过渡。

解决方案是插入一个新的 BG 元素,该元素绝对定位并适合父元素的宽度,并将过渡应用到它而不是父元素本身。