【发布时间】:2018-05-03 18:56:22
【问题描述】:
所以我有一个使用剪辑路径显示的菜单,然后在其中的链接从 0 到 1 不透明度进行动画处理。这工作了一段时间,直到 chrome 66。这在 Firefox 中仍然有效,所以我不确定这是 chrome 中的错误还是它应该是这样的方式,而 Firefox 还没有赶上。
@keyframes slideInDown {
from {
-webkit-transform: translate3d(0, -50%, 0);
transform: translate3d(0, -50%, 0);
opacity: 0;
}
to {
-webkit-transform: translate3d(0, 0);
transform: translate3d(0, 0, 0);
opacity: 1;
}
}
.mobile-menu {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 10;
background: #f1f200;
padding: 24px;
display: none;
transition: 500ms ease-out;
}
.mobile-menu {
clip-path: circle(0 at 0% 0%);
display: block;
}
.mobile-menu.active {
display: block;
clip-path: circle(200% at 0% 0%);
}
.mobile-menu.active a {
animation-name: slideInDown;
animation-duration: 0.9s;
animation-fill-mode: forwards;
animation-delay: 160ms;
}
.mobile-menu a {
color: #ff005d;
animation-name: none;
display: block;
opacity: 0;
}
https://codepen.io/picard102/pen/zjoexP
那么我现在要如何在 chrome 中复制效果呢?
【问题讨论】:
-
就剪辑路径而言,Chrome 的新版本似乎有很多问题。另一个问题是,对 clip-path 属性进行动画处理会导致其子项也进行动画处理(这在 Firefox 中不会发生)。
-
同样的问题,我认为是时候转向 svg 剪辑了...
-
我想问题就变成了如何最好地跨浏览器实现这种效果。