SHOJI's Code
 仕事や趣味で書いた各種言語のプログラミングコード(エクセルVBA,PHP,C/C++/C#,JavaScript等)、その他雑記。
2018.07<<12345678910111213141516171819202122232425262728293031>>2018.09
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

現在、とあるサイトのリニューアル作業をしている。

で、サイドメニューやヘッダー部分のメニューなど共通の部分で今表示しているページへのリンクをいちいちページごとに無効にするのがめんどくさかった。・・・ということでこんなのをプログラミングしてみた。
function sidebar_init_rollover()
{
for(var i=0;;i++)
{
var objname = "menu" + (i+1);
var obj = document.getElementById(objname);

if( !obj ) break;
sidebar_register_rollover(obj);
}
}
function sidebar_disable_selflink()
{
var links = document.getElementById("sidebar").getElementsByTagName("a");
for(var i=0;i<links.length;i++)
if( links[i].href == self.location )
{
links[i].href = "#";
links[i].innerHTML = sidebar_replace_imagename(links[i].innerHTML, "1", "2");
break;
}
}


function sidebar_register_rollover(obj)
{
obj.onmouseover = function() { sidebar_set_image(this,"2"); };
obj.onmouseout = function() { sidebar_set_image(this,"1"); };
}
function sidebar_set_image(obj,num)
{
obj.src = sidebar_replace_imagename(obj.src, num!="1"?"1":"2", num);
}
function sidebar_replace_imagename(txt,n1,n2)
{
return txt.replace(n1+".png",n2+".png");
}


sidebar_init_rollover()は、idが"menu1", "menu2"となっているエレメントに対してロールオーバー処理を登録している。ここでは通常時が~1.png, マウスオーバー時は~2.pngという風にしている。それからsidebarエレメント内のaタグで自分自身(self.location)にリンクしているものを画像を変更し、リンク先を"#"にしている(ホントはリンク自体を消したかったけど、メンドくなったからやめた(^^;)。

テーマ:JavaScript(ジャバスクリプト) - ジャンル:コンピュータ
コメント
この記事へのコメント
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2006 SHOJI, Powered By FC2ブログ all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。