我正在为我正在处理的项目的按钮添加点击/触摸动画,我遇到了一个令人沮丧的问题,即动画按钮显示和隐藏元素。
该项目是一个单页移动网络应用程序,上面有几个按钮。我正在使用 jQuery 在按下按钮时在按钮上设置 css 关键帧动画。该按钮隐藏当前页面,并显示一个新页面。问题是,当我单击按钮时,页面会在动画完成之前更改,并且在隐藏容器时动画会暂停。当容器重新显示时,动画从它隐藏的地方继续,然后触发 webkitAnimationEnd 事件。
容器显示和隐藏:
display: none;
我无法将其更改为:
visibility: hidden;
因为容器仍然会占用空间。有没有什么简单的方法可以在元素变得不可见时强制删除动画,或者在隐藏容器时强制动画继续?
编辑:为澄清起见,这是我在 javscript 中应用的关键帧动画:
@-webkit-keyframes shrink
{
0%
{
-webkit-transform: matrix(1, 0, 0, 1, 0, 0);
}
50%
{
-webkit-transform: matrix(0.95, 0, 0, 0.95, 0, 0);
}
100%
{
-webkit-transform: matrix(1, 0, 0, 1, 0, 0);
}
}
这是我必须将动画应用于元素的javascript:
$('body').on(_context.settings.platformInfo.device.touch ? 'touchstart' : 'mousedown', '.shrink', function ()
{
var $item = $(this);
$item.one('webkitAnimationEnd', function ()
{
$item.css({ '-webkit-animation': 'none' });
}).css({ '-webkit-animation': 'shrink 250ms forwards' });
});