自分のサイトのメニューの Hover 効果を JavaScript から CSS へ移行しました。
JavaScript で画像の切り替えを行うと、呼び出しが 2 回行われるためレスポンス的に良くありません。同じ画像ファイルに、通常の画像と Hover 時の画像を上下に並べて保存し、a:Hover で、background-position をその画像の大きさ分ずらすことで、画像の切り替えができます。
このように、JavaScript から、CSS へ以降するメリットは多くあると思います。
- 画像ファイルが 1 度に読み込まれるのでタイムラグが発生しない。
- 通常時と Hover 時の両方の画像を用意しないで、1 つのファイルで管理できる。
- そもそも、JavaScript を使わなくて良くなるのが最大の利点。
実はこの方法、先日 XP 視覚テーマファイル (MSSTYLE ファイル) を弄ってた時に思いついた方法です。(XP 視覚テーマでもこの方法を採用しています) しかし、今日検索してみたところ、この方法は有名なようで... 知らなかったです orz