Background:
jQuery は、シームレスに実行するための強力な animate() メソッドを提供します。時間の経過とともにさまざまな CSS プロパティを移行します。ただし、「background-color」プロパティをアニメーション化しようとすると、「無効なプロパティ」エラーが発生することがよくあります。
問題:
を使用して背景色をアニメーション化しようとすると、マウスオーバーで jQuery を実行すると、これが発生する可能性がありますエラー:
$(".usercontent").mouseover(function() { $(this).animate({ backgroundColor: "olive" }, "slow"); });
解決策:
この問題に対処するには、さまざまなカラー プロパティのアニメーション化をサポートする jQuery カラー プラグインをロードする必要があります。実装方法は次のとおりです:
// Include the jQuery color plugin // Animate background color on mouseover using plugin $(".usercontent").mouseover(function() { $(this).animate({ backgroundColor: "olive" }, "slow"); });
プラグインの実装:
プラグインは、色の遷移を処理するためにコアの jQuery animate() メソッドを強化します。 RGB、16 進数、CSS の色名など、さまざまな形式で色の値を指定できます。以下はプラグインのスニペットです:
jQuery.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function (f, e) { jQuery.fx.step[e] = function (g) { ... g.elem.style[e] = "rgb(" + [Math.max(Math.min(parseInt((g.pos * (g.end[0] - g.start[0])) + g.start[0]), 255), 0), Math.max(Math.min(parseInt((g.pos * (g.end[1] - g.start[1])) + g.start[1]), 255), 0), Math.max(Math.min(parseInt((g.pos * (g.end[2] - g.start[2])) + g.start[2]), 255), 0)].join(",") + ")" } });
このステップ関数はトランジション カラー値を段階的に計算し、開始カラーと終了カラーの間でスムーズなアニメーションを保証します。
以上がjQuery の animate() がマウスオーバー時に背景色のアニメーション化に失敗するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。