覆盖动画填充模式:在JavaScript/CSS中转发
Overriding animation-fill-mode: forwards in JavaScript/CSS
我有一些正在制作动画的文本,我使用CSS关键帧来完成。我保留了动画最终结果的外观,所以我使用动画填充模式:向前这样做,就像这样:
#my-text {
opacity: 0;
}
.show-me {
animation-name: show-me;
animation-duration: 2s;
animation-fill-mode: forwards
}
@keyframes show-me {
100% {
opacity: 1;
}
}
然后,我使用jQuery:将show-me类添加到元素中
$('#my-text').addClass('show-me');
后来,在动画完成后,我试图通过代码更改元素的不透明度,但无法做到:
// this won't change the opacity, unfortunately
$('#my-text').css('opacity', 0);
以下是一个显示问题的示例:http://jsfiddle.net/x3mbkbwL/2/
向前使用填充模式时,如何覆盖动画中的值集?我知道当我需要更改元素的不透明度时,我可以删除该类(在本例中为"show me"),但似乎我应该能够直接覆盖JavaScript中的css,它会覆盖不透明度。
似乎animation-fill-mode: forwards
设置的CSS属性无法在同一元素上覆盖。
任一:添加父包装
一种解决方案是在设置了animation-fill-mode: forwards
的元素周围放置一个包装器。然后,为了覆盖转发的属性,您只需要更新父属性。
<div id="parent">
<div id="my-text">I just faded in!</div>
</div>
然后仅在父级上"覆盖"opacity
:
$('#parent').css('opacity', 0);
我已经在这里实现了对您小提琴的更改:http://jsfiddle.net/x3mbkbwL/3/
或者:在里面套一个包装纸
如果您愿意,也可以添加另一个子元素:
<div id="my-text">
<span id="wrapper">I just faded in!</span>
</div>
然后仅在嵌套包装器上"覆盖"opacity
:
$('#wrapper').css('opacity', 0);
如果将转发的不透明度设置为1
,则这两种方法效果最佳。如果它被转发到0
,那么它显然不会工作,因为元素已经被隐藏了。
相关文章:
- CSS-如何定位内容数据标题
- 窗口大小html css
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 动画.CSS重播
- 有没有一种方法可以防止img get请求使用css或js发生
- CSS表格:从列平移到整个表格宽度
- CKEditor-我在editor.css中的风格是't
- 单击更改图标并通过javascript添加一个css类
- 将CSS应用于printWindow.print();在Javascript中
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- css(或jQuery)悬停时淡入淡出
- 为什么不'在JQuery中找到第二个css选择器的工作
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- 如何使用css动画/javascript使具有背景图像的元素出现
- 获取HTML属性中CSS声明的值
- 当我更改Joomla时,它仍然从旧域加载CSS和Javascript
- 如何使用css动画从中心增加边界线
- 谷歌图表-如何更改整个表的css属性
- 覆盖动画填充模式:在JavaScript/CSS中转发