在Webkit中显示无并阻止CSS3关键帧动画
在我的html5游戏中,我正在播放一些css3关键帧动画。 在动画播放过程中,用户可以按下暂停按钮,该按钮将div容器(包含播放动画的子容器)设置为显示:无。 回到游戏状态并将div设置为在Webkit中显示无并阻止CSS3关键帧动画,css,webkit,Css,Webkit,在我的html5游戏中,我正在播放一些css3关键帧动画。 在动画播放过程中,用户可以按下暂停按钮,该按钮将div容器(包含播放动画的子容器)设置为显示:无。 回到游戏状态并将div设置为display:block后,将强制在Chrome和Safari中重放KeyframeAnimation。 它在Firefox中运行良好 我已经创建了一个JSFIDLE来显示这个问题。 在firefox中,元素继续旋转,在chrome和safari中,元素被重放 我尝试改用可见性:隐藏,不透明度:0,但是我对可
display:block
后,将强制在Chrome和Safari中重放KeyframeAnimation。
它在Firefox中运行良好
我已经创建了一个JSFIDLE来显示这个问题。
在firefox中,元素继续旋转,在chrome和safari中,元素被重放
我尝试改用可见性:隐藏,不透明度:0
,但是我对可单击元素有问题(由于不透明度),并且可见性在div元素中不是递归的
如何防止动画在webkit浏览器中重放,或者使用什么替代显示
解决方案
它是zIndex和不透明性的组合:
旧代码:
if(visible) {
this.domEl.style.display='block';
} else {
this.domEl.style.display='none';
}
新代码:
if(visible) {
this.domEl.style.zIndex=(this.prevZIndex==undefined?0:this.prevZIndex);
this.domEl.style.opacity=1;
console.log(this.name+" "+this.domEl.style.zIndex);
} else {
this.prevZIndex=this.domEl.style.zIndex;
this.domEl.style.opacity=0;
this.domEl.style.zIndex=-10;
}
}
按
位置隐藏:绝对且坐标不可见():
谢谢你的把戏!不幸的是,它并不完全符合我的需要,因为我还必须保持某些元素可点击,有些则不可点击。。显示:没有人能为我解决这个问题。我现在找到的解决方案是设置负z指数和不透明度的组合!(见我的第一篇帖子)。。不过还是要谢谢你:)
document.getElementById('rotate').onmouseover = function(){
this.style.cssText = 'position: absolute; top: -9999px;left: -9999px;';
};
document.getElementById('rotate').onmouseout = function(){
this.removeAttribute('style');
};