CSS3关键帧动画点击(与addClass).如何重新启动CSS3动画添加css类
CSS3 keyframes animation on click (with addClass). How to restart CSS3 animation with adding css class?
我有一个问题。我使用Bounce.js来创建漂亮的菜单动画(有一些很酷的效果)。js使用css关键帧动画,重新启动可能会有问题。我有一个菜单,当我点击一个按钮,当。show类被添加,它应该显示动画。但是当我再次按下按钮时,隐藏类应该添加隐藏动画(这只是之前动画的反向版本)。
Js正在工作(类正在正确地添加和删除),但是动画只触发一次-并且没有隐藏动画(菜单元素只是消失而不动画它自己)。
您可以通过几种方式来做到这一点。
一种方法是在添加动画类之前触发元素的重新流。
element.offsetWidth = element.offsetWidth;
例如(普通JS):
if (element2.classList.contains('show')) {
element2.classList.remove("show");
//restarting css3 keyframe animation
**element2.offsetWidth = element2.offsetWidth;**
element2.classList.add("hide");
}else{
element2.classList.remove("hide");
//restarting css3 keyframe animation
**element2.offsetWidth = element2.offsetWidth;**
element2.classList.add("show");
}
jQuery版本:if(settingPopup.hasClass('show')){
settingPopup.removeClass('show');
//line below is a fix to restart css3 keyframe animation
//settingPopup.outerWidth(settingPopup.outerWidth)
settingPopup.outerWidth(settingPopup.outerWidth).addClass('hide');
}else{
settingPopup.removeClass('hide');
//line below is a fix to restart css3 keyframe animation
//settingPopup.outerWidth(settingPopup.outerWidth)
settingPopup.outerWidth(settingPopup.outerWidth).addClass('show');
}
这里正在为它工作:https://jsfiddle.net/zpawpvke/2/
基于:https://css-tricks.com/restart-css-animation/
相关文章:
- 关键帧之间的css3动画延迟
- 访问css3动画的关键帧
- CSS3动画图像质量按比例
- CSS3卡翻转动画,检测是否不支持
- jQuery鼠标输出调用CSS3动画
- 使用带有onclick事件的Javascript启动CSS3动画
- 在 CSS3 动画完成后重新加载 JavaScript
- 为什么当我用jQuery制作长方体动画时,CSS3长方体阴影会分离
- 如何正确地链接调用$.show()和$.thoggClass()来触发CSS3动画
- 哪种动画最适合表演?css3或javascript
- css3动画文本居中对齐
- Chrome在尝试从Javascript修改CSS3动画时崩溃
- 如何用Javascript覆盖CSS3动画
- 在没有关闭H/W加速的情况下优化CSS3动画会让它在GPU上运行得更快吗
- Chrome动画CSS3三维立方体与悬停状态问题
- 具有弹性图像效果的动画(CSS3和JS)
- 正弦球动画CSS3
- 从“开始”屏幕恢复动画 CSS3
- 有趣的动画CSS3 404页面
- 动画CSS3旋转单击上一个和下一个