ドキュメントに、通常の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 = ""; 予想通り、これは例外をスローしました。
これを克服するために私は何ができますか?
強調表示している要素内にスパンを配置し、代わりにそのスパンを強調表示できることはわかっていますが、余分な無駄なマークアップを回避できることを望んでいます。
ありがとう!