我所知,直到现在,我对 CSS3 过渡没有任何问题。突然(可能是因为 chrome 更新或对我的代码的其他修改)它刚刚停止在 chrome (32.0.1700.77) 中工作,但仍然可以在所有其他浏览器(以及旧版本的 chrome)中工作。
@media screen and (max-width: 1325px) {
.row-offcanvas {
position: absolute;
-webkit-transition: all 0.25s ease-out;
-moz-transition: all 0.25s ease-out;
transition: all 0.25s ease-out;
width: 100%;
}
button.toggle {
display: inline-block;
}
.row-offcanvas-left,
.sidebar-offcanvas {
left: -239px;
z-index: 9999;
height: 700px;
}
.row-offcanvas-left.active {
left: 239px;
}
.sidebar-offcanvas {
position: absolute;
top: 0;
width: 239px;
}
}
我没有对网站的这一部分进行任何更改,也无法解释为什么它突然不起作用。过渡是针对一个面板,当单击按钮时,该面板会滑出,由这段javascript触发(不负责动画)。
$(document).ready(function() {
$('[data-toggle=offcanvas]').click(function() {
$('.row-offcanvas').toggleClass('active');
});
});
您的问题是您正在尝试从未定义的属性进行动画处理:您正在将left
更改为 239px
,但最初没有明确将其指定为 0
。因此,它默认为 auto
,该值没有有效的平滑过渡到 239px
。
将left:0
添加到基本定义中,您将没事的。
在此处查看JSfiddle,演示您在Chrome 32+中的问题。