【发布时间】:2010-10-03 20:59:15
【问题描述】:
我的文档中有一个元素,它通过常规 CSS 规则设置了背景颜色和图像。
当某个事件发生时,我想为该项目设置动画,突出显示它(我使用的是 Scriptaculous,但这个问题适用于任何会做同样事情的框架)。
new Effect.Highlight(elHighlight, { startcolor: '#ffff99', endcolor: '#ffffff', afterFinish: fnEndOfFadeOut });
我面临的问题是动画完成后,元素留下以下样式(根据 FireBug):
element.style {
background-color:transparent;
background-image:none;
}
这会覆盖 CSS 规则,因为它是在元素级别设置的,所以我失去了该项目曾经拥有的背景......
我正在尝试做的是,在动画完成后我正在运行的回调函数中,将样式属性设置为一个可以让它们“消失”的值。
var fnEndOfFadeOut = function() {
elHighlight.style.backgroundColor = "xxxxx";
elHighlight.style.backgroundImage = "xxxxx";
}
我要弄清楚的是在“xxxx”中放入什么(或者如何以不同的方式做同样的事情)。
我尝试了 'auto'、'inherit' 和 ''(空白字符串),但都没有奏效(我真的没想到它们会起作用,但我在这里一无所知)。
我也试过:elHighlight.style = "";不出所料,这引发了异常。
我能做些什么来克服这个问题?
我知道我可以在我突出显示的元素中放置一个跨度并突出显示该跨度,但我希望我能够避免额外无用的标记。
谢谢!
【问题讨论】:
标签: javascript css animation