【问题标题】:Perspective not working on "to" transitions, but working on "back" transitions in SafariPerspective 不处理“to”转换,而是处理 Safari 中的“back”转换
【发布时间】:2021-08-20 04:45:49
【问题描述】:

我在 Safari 中发现了 perspective 的这种相当奇怪的行为。在transform: rotateY(180deg) 上使用perspective 时,to 旋转没有应用透视,但反向旋转可以。请参阅下面的两个 GIF:

Safari 上的行为。第一次旋转没有任何透视:

与所有旋转都应用透视的 Firefox 相比:

The videos as an imgur album in case of problems with the gifs

我正在使用这段 SCSS 代码:

.card {
    perspective: 150rem;
    -moz-perspective: 150rem;

    &__side {
        background-color: orangered;
        color: white;
        font-size: 2rem;
        height: 50rem;
        transition: all .4s;        
    }

    &:hover &__side {
        transform: rotateY(180deg);
    }
}

我已经尝试了许多细微的更改,例如使用 -webkit-perspective,但没有成功。

这是一个包含代码的代码笔:https://codepen.io/YellowTech/pen/rNmXemj

我是否忽略了某些东西或者如何解决这个问题?

谢谢!

【问题讨论】:

    标签: css sass safari webkit webkit-perspective


    【解决方案1】:

    动画正在尝试转换为 180 度的旋转,但在 Safari 上,它似乎想知道它是从什么转换而来的。也许其他浏览器假定初始旋转为 0 度。

    如果设置了初始条件,我可以看到实际的透视:

    .cont {
      width: 300px;
    }
    
    .card {
        perspective: 150rem;
        -moz-perspective: 150rem;
    
        &__side {
            background-color: orangered;
            color: white;
            font-size: 2rem;
            height: 50rem;
            transition: all .4s; 
            transform: rotateY(0deg); /* ADDED */       
        }
    
        &:hover &__side {
            transform: rotateY(180deg);
        }
    }
    

    【讨论】:

    • 哦,哇,这是修复它的一个有趣的东西。非常感谢!另一个潜在问题(尤其是在使用绝对定位时)是当卡片的高度为 0 时,透视可能也不起作用。请注意这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多