Webは略語じゃないのに「WEB」って書く人が多いのが気になって仕方ない今日この頃。(あ、音声ブラウザを配慮したらという場合です)
さて、本題に。
CSSのみでロールオーバーするテクニックは有名でございますが、ココ最近JSでいいじゃん。と思うようになってます。
ってことで、こんなサイト名ですけどJavaScriptでやるロールオーバーの方法のひとつでも。
jsファイルのご用意
何はともあれ、下記のjsファイルをご用意します。
function smartRollover() {
if(document.getElementsByTagName) {
var images = document.getElementsByTagName("img");
for(var i=0; i < images.length; i++) {
if(images[i].getAttribute("src").match("_off."))
{
images[i].onmouseover = function() {
this.setAttribute("src", this.getAttribute("src").replace("_off.", "_on."));
}
images[i].onmouseout = function() {
this.setAttribute("src", this.getAttribute("src").replace("_on.", "_off."));
}
}
}
}
}
if(window.addEventListener) {
window.addEventListener("load", smartRollover, false);
}
else if(window.attachEvent) {
window.attachEvent("onload", smartRollover);
}
ダウンロードしたい方は以下より。
smartRollover.js
んで、コレを外部ファイルとして読み込ませる。
こんな感じで。
<script type="text/javascript" src="smartRollover.js"></script>
記述する場所はhead要素内でございます。
画像のご用意
通常時の画像と、ロールオーバー時の画像を別々で用意して、以下のようにファイル名の最後に「_on」「_off」とつけます。
- menu_on.gif
- menu_off.gif
ソース
_offの画像をご自由に指定します。
<p> <a href="/"><img src="./menu_off.gif" alt="HOME" /></a> </p>
サンプルページ
仕様とか
JSに関しては殆ど無知なんで、知り合いに頼んで作ってもらった訳でございますが、取りあえず、ファイル名の最後に「_off」ってついてる場合、同名の「_on」のファイルに入れ替わるって感じです。
ですので、間違って_offってファイル名に付けた場合_onを探しにいって×とか出る可能性があるのでご注意を。
サンプルはgifですが、jpgとかpngとかでもOKです。
よく見るロールオーバーのサンプルだとソースがごちゃごちゃしてていけてなかったからJSでのロールオーバーを敬遠してたけど、コレならソースもシンプルなのでいいなーと思った感じです。
ご注意事項とか
- 改変とかはご自由にどうぞ。
- 使用用途に関しても制限無しです。ご自由にどうぞ。
- 万が一コレが原因で何らかの問題が発生しても、ウチでは一切の責任を取りません。
- 使用に関しては自己責任でお願いします。
