我-webkit-transition
在 Safari 中遇到问题。这些转换在 Chrome、FF 和 IE10 中运行良好(使用无前缀转换属性)。
在我的站点中,可以查看 3 个面板。主要的默认打开,另外 2 个折叠在窗口右侧,显示其内容的一小部分。单击折叠面板时,会通过 JS 向其中添加一个额外的类,并将其转换为 100% 宽度。
CSS:
.panel-1{
width: 100%;
}
.panel-2{
width: 8rem;
position: absolute;
top: 0;
right: 0;
overflow: hidden;
z-index: 500;
transition: all 0.5s;
-webkit-transition: all 0.5s;
}
.panel-2:hover{
width: 10rem;
}
.panel-2.panel-open{
width: 100%;
}
.panel-3{
width: 4rem;
position: absolute;
top: 0;
right: 0;
overflow: hidden;
z-index: 501;
transition: all 0.5s;
-webkit-transition: all 0.5s;
}
.panel-3:hover{
width: 6rem;
}
.panel-3.panel-open{
width: 100%;
}
问题似乎在于测量单位的差异。悬停过渡按预期工作(rem
到),但是“面板打开”上rem
的宽度过渡(rem
到)会跳过过渡并直接打开。%
如果我将默认宽度切换为百分比而不是rem
,则过渡再次起作用。但是我不能这样做,因为它是一个流动的站点,并且面板折叠的宽度需要是静态的而不是相对的。
我试图添加一个min-width
in %
,但这并没有帮助。对此的任何建议将不胜感激。