はい、純粋に HTML マークアップと CSS を使用して、任意の要素にホバー アニメーションを追加できます。
.animated
{
transition: prop;
prop: value1;
}
.animated:hover
{
prop: value2;
}
prop
アニメーション化したくない CSS プロパティはどこにありますか。これは、ほとんどのブラウザーで非常にうまく機能します。また、スクリプトを使用してこの動作を作成することもできます。
マークアップを使用して、スクリプトを使用せずにアニメーション化する最も簡単な方法は、:hover
andを使用することtransition
です。アニメーション化する方法は次のmargin-left
とおりです。http://jsfiddle.net/9kpfW/
数値メジャーを使用して任意のプロパティをアニメーション化できます。(12px、12em、12% など) 数値以外のプロパティ (つまりtext-align
) でホバー効果を追加することもできますが、トランジションを適用することはできません。また、 を使用して、同じ要素の複数のプロパティをアニメーション化することもできますtransition
。
そのため、CSS だけで非常にリッチな効果を作成できます。JavaScript は必要ありません。:hover
効果は、Internet Explorer の古いバージョンを含む、ほぼすべてのブラウザーで適切に機能します。ただし、同じアニメーション化されたトランジション効果で古いブラウザーをサポートする必要がある場合は、ほとんどすべてのブラウザーでサポートされ有効になっている JavaScript を使用する必要があります。jQuery JavaScript ライブラリを使用してスクリプトを簡素化することをお勧めします。
luckyamit の回答に基づいて、margin-left
jQuery を使用した同じアニメーションの簡単な例を次に示します。これは、古いバージョンを含むほとんどすべての Web ブラウザーでうまく機能します。
$(".nav li").hover(
function()
{
$(this).find("a").stop().animate({"margin-left" : "40px"});
},
function()
{
$(this).find("a").stop().animate({"margin-left": "5px"});
}
);
フィドル: http://jsfiddle.net/LxAva/1/
ただし、これらのまれなブラウザーで同じエクスペリエンスを提供する必要がない場合は、マークアップ、スタイル、およびロジックを切り離すという原則により、純粋な CSS ソリューションをお勧めします。リッチ トランジション効果は、ロジックよりもスタイルに関連しているため、JavaScript ではなく CSS で解決する必要があります。また、ほとんどの場合、CSS の方が実装が簡単で高速です。