【发布时间】:2013-09-07 02:32:24
【问题描述】:
我在 Safari 中遇到了-webkit-transition 的问题。这些转换在 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,但这没有帮助。对此的任何建议将不胜感激。
【问题讨论】:
-
请在此处或 jsfiddle 中提供示例。
-
.panel-1、.panel-2和.panel-3之间是什么关系?请提供 html 或有效的 jsFiddle。 LE:我刚刚注意到这个问题的日期。谢尔盖,我想知道是否值得对其进行编辑并将其带回。 BigRedEd 可能忘记了他现在有一个 SE 帐户。
标签: css safari webkit css-transitions