【发布时间】:2013-09-30 08:04:50
【问题描述】:
我在这里遇到了许多帖子,详细说明了 CSS3 动画在 Firefox 中无法正常工作的问题,即使是动画只触发一次的问题:
Firefox only runs the CSS animation once
和
Documented bugs of Firefox/jQuery/CSS animations together?
但这些修复与我的问题无关。我已经让这些动画在 Safari/Chrome 中运行,甚至为所有 css 提供了正确的供应商前缀(即使 firefox 不需要它们)。我正在使用 Jquery 添加/删除类事件来触发动画,我可以在萤火虫中看到类在我期望的时候发生变化。
唯一的问题是动画第一次触发,但不再触发,只是默认让面板消失并重新出现
CSS:
/* CUSTOM SLIDING PANEL */
@-webkit-keyframes panelSlideLeft {
from {
opacity: $panelOpacityStart;
-webkit-transform: translateX(0);
}
to {
opacity: $panelOpacityEnd;
-webkit-transform: translateX($panelWidth);
}
}
@-moz-keyframes panelSlideLeft {
from {
opacity: $panelOpacityStart;
-moz-transform: translateX(0);
}
to {
opacity: $panelOpacityEnd;
-moz-transform: translateX($panelWidth);
}
}
@keyframes panelSlideLeft {
from {
opacity: $panelOpacityStart;
transform: translateX(0);
}
to {
opacity: $panelOpacityEnd;
transform: translateX($panelWidth);
}
}
.slide-panel-left-open {
opacity: $panelOpacityEnd;
-webkit-animation: panelSlideLeft $animationDuration linear;
-moz-animation: panelSlideLeft $animationDuration linear;
animation: panelSlideLeft $animationDuration linear;
-webkit-transform: translateX($panelWidth);
-moz-transform: translateX($panelWidth);
transform: translateX($panelWidth);
}
.slide-panel-left-close {
-webkit-animation: panelSlideLeft $animationDuration linear reverse;
-moz-animation: panelSlideLeft $animationDuration linear reverse;
animation: panelSlideLeft $animationDuration linear reverse;
}
在 javascript 中,我使用一个布尔值来确定要修改哪些类,并且在 Jquery 对象上设置了 slidePanel.side 并按预期更改为“左”或“右”,即使在 Firefox 中也是如此(有右侧滑动面板也使用此功能)。
JS:
slidePanel.bind('togglePanel', function() {
if(slidePanel.open) {
slidePanel.removeClass('slide-panel-' + slidePanel.side + '-open');
slidePanel.addClass('slide-panel-' + slidePanel.side + '-close');
} else {
slidePanel.removeClass('slide-panel-' + slidePanel.side + '-close');
slidePanel.addClass('slide-panel-' + slidePanel.side + '-open');
}
slidePanel.open = slidePanel.open ? false : true;
});
【问题讨论】:
-
目前在 bugzilla 进行中:bugzilla.mozilla.org/show_bug.cgi?id=920608
标签: jquery css firefox css-animations