gpt4 book ai didi

javascript - 如何撤销 element.style 属性的设置?

转载 作者:行者123 更新时间:2023-11-30 07:19:18 25 4
gpt4 key购买 nike

我的文档中有一个元素具有通过常规 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”中放入什么(或者如何以不同的方式做同样的事情)。
我尝试了“自动”、“继承”和“”(空白字符串),但都没有用(我真的没想到它们能用,但我在这里一无所知)。

我还尝试了 elHighlight.style = "";,这预计会引发异常。

我能做些什么来克服这个问题?
我知道我可以在要突出显示的元素内放置一个跨度,然后改为突出显示该跨度,但我希望能够避免额外的无用标记。

最佳答案

很可能您没有在正确的元素上设置样式。它可能被设置在父节点中的某处。

elHighlight.style.backgroundColor = "";
elHighlight.style.backgroundImage = "";

您还可以删除所有默认样式,方法是调用:

elHighlight.style.cssText = "";

无论如何,您仍然必须对设置这些属性的特定元素执行此操作,这意味着您可能需要对 parentNode 进行递归,直到找到它。

关于javascript - 如何撤销 element.style 属性的设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/485323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com