• ベストアンサー

リンクをクリックした際、一時的にそのリンクの色を変化させる方法

iframeで2分割しているサイトで、左部がメニュー、右部がメニューのリンク先を表示する設定です。 左部のリンクをクリックし、右部にリンク先の内容が表示されている間、 メニュー側のクリックしたリンク部分の文字色を変更したままでおきたいのですが、javascriptで、できますでしょうか。 左メニュー側の他リンクをクリックしたら、新しいリンク部分の色が変化し、前にリンクした部分の色は 最初の状態に戻る、という設定を行いたいです。 CSSのvisitedだとクリックした後でしか指定できないため困っております。 よろしくお願い申し上げますm(_ _)m

  • Pesi
  • お礼率87% (14/16)

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たとえばこんなかんじ <script> window.onload=function(){ setColor(); } function setColor(){ var menu=document.getElementById("menu"); var tags=menu.getElementsByTagName("a"); for (var i=0;i<tags.length;i++){ tags[i].onclick=function(){ var pp=this.parentNode.parentNode; var tags=pp.getElementsByTagName("a"); for (var i=0;i<tags.length;i++){ tags[i].className=""; } this.className="hoge"; } } } </script> <style> #menu a{ color:#0000ff; text-decoration:none; } #menu .hoge{ color:#ff0000; background-Color:#ffff00; font-weight:bold; } </style> <ul id="menu"> <li><a href="#">hoge1</a></li> <li><a href="#">hoge2</a></li> <li><a href="#">hoge3</a></li> </ul>

Pesi
質問者

お礼

ありがとうございます、動かすことができました。 よろしければもうひとつ質問なのですが、こちらにマウスが重なった場合背景を変化させる機能を入れるにはどうしたらよいのでしょうか? function swImg(iName,str) { document.images[iName].src = str; } では画像のみをそのまま変えるため、うまくいかなかったもので…。 申し訳ございませんが、よろしくお願いします。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>マウスが重なった場合背景を変化させる機能 hoverを使うといいです。背景画像を変更するのでよろしいですね? #menu a{ color:#0000ff; text-decoration:none; } #menu a:hover{ background-Image:url(1.jpg) } #menu .hoge{ color:#ff0000; background-Image:url(2.jpg) font-weight:bold; } みたいな感じでどうでしょうか? hover=オンマウスのときのcssでは1.jpgを背景に クリックしたhogeクラスの際には2.jpgにしています

Pesi
質問者

お礼

たびたびありがとうございました。 こちらは通常のcssを使えばよかったのですね、記述ミスをしていて気がつきませんでした。 ありがとうございます。

関連するQ&A

  • リンクの色が一部変化しない

    cssでリンクの色の指定(hover・visited)をしたのですが、何故か2箇所だけ色が変化しません。ソースを見ても、他のリンク部分と全く同じ(<a>タグでくくってあるのみ)です。ちゃんとリンク先にも飛ぶのですが、何故マウスオーバーした時に2箇所だけ色が変わらないのか分かりません。リンク先がかなり古いサイトで、ひょっとしてそれが関係しているのかなと思ったのですが、飛ぶことは飛ぶので不具合点が分かりませんでした。解決方法をご存知の方、いらっしゃったら是非教えてください。宜しくお願い致します。

  • css リンクの色が全部変わってしまう。

    1、 css div#link a:link{#ff0000;} div#link a:visited{#999999;} と設定したリンクの行があるとします。 ひとつのリンクをクリックすると、全ての並んでいる、リンクがvisitedの色に変わってしまいます。 原因と直し方を教えてください。 2、 また、firefox(IEもかもしれない)では一度visitedの色になるとブラウザを再起動しても、いつまでもvisitedの色のままです。 これは正常な動作なのでしょうか。 異常である場合の直し方を教えてください。 正常である場合、むやみにlink色とvisited色は違う色にしない方がよろしいということでしょうか。 回答お願いします。

    • ベストアンサー
    • CSS
  • リンク色の取得方法

    ページ全体のリンク色を取得するためには、documentオブジェクトの、linkColor,linkColor,vlinkColorプロパティを参照すれば良いですが、cssを使って部分的にリンク色が設定されている場合の取得方法がわかりません。 このように部分的に適用されているオブジェクトのリンク色(a:link、a:visited、a:hover、a:active)を取得する方法を教えていただきたいと思います。

  • Dreamweaverで2種類のlink設定(色など)をする方法を教えて下さい

    Dreamweaver MX 2004を使ってますが、 例えば、同じページで、a:link a:visited a:hoverなどをCSSで設定する場合、 その色・設定項目は、一種類しか設定できません。 この、a:link a:visited a:hoverなどを、もう一種類(例えば別の色とか) 違う設定をする方法が分かりません。 とても簡単な様で、なぜか昔から分かりません。(汗) CSSを使っても使わなくても良いのですが、 どなたか、a:link a:visited a:hoverを複数設定をする方法などあれば、 お教えくださいませ。よろしくお願い致します。

  • クリックして、タイトルの色を変えたいのですが。

    クリックして、タイトルの色を変えたいのですが。 現在、ホームページを立ち上げるべく、パソコンのメモ帳に色々と入力しているんですが、以下の動作の記述方法がわかりません。 abcdefg(←タイトル) 1(←メニューのリンク) 2(←メニューのリンク) 3(←メニューのリンク) ・各メニューのリンク(上記の1,2,3)をクリックすると、タイトル(上記のabcdefg)の色が指定した各々の色に変わる。  (メニューとタイトルのソースは同じページ上にあり、タイトルには(cssで若干調整してある)<h2>タグを、メニューにはリストを用いています。タイトルには2色交互に使っていて、色の変更にもできれば2色交互に使いたいと思っています) CSSはそこそこ理解できていますが、JavaScriptに関しては全くの素人です。 可能かどうかの判断も含めて、どうぞよろしくお願いします。 (※動作環境はVista、IE8です。)

  • スタイルシートで一部分だけ リンクの色を変えたい

    CSSでリンクの色をかえるのにa:link{} a:visited{} などを使っています。別の場所にCSSファイルを作って使っています。 ページに多数存在するリンクのうち、一部分だけ色を変えたいときはどうすればいいでしょうか? <divc class=""></div>などでは無理ですよね body内に直接記述するしかないのでしょうか?

    • ベストアンサー
    • HTML
  • 表示済みリンクの色が変化しない

    IEにて、あるWebページへのリンクをクリックしてから[戻る]ボタンをクリックすると、表示済みリンクの色が変わっていないことがあります。 例:「goo ニュース」(news.goo.ne.jp)の左上にある「トピックス」(news.goo.ne.jp/news/topics/)へのリンク ※すべての閲覧済みのリンクの色が変わっていないわけではありません。 どうすれば表示済みリンクの色が反映されるのでしょうか。 これはIEの仕様なのでしょうか。 表示済みおよび未表示のリンクの色はデフォルトの設定にしています(変えていません)。 ページを履歴に保存する日数は90日にしています。 また、キャッシュの削除は頻繁に行っています。 OSはWindows XP Professional(SP1)です。 IEのバージョンは6.0です。 宜しくお願いします。

  • CSSでのリンク色の変更で

    HPのリンク色(a:link)の色をa:link{color:#ffffff;}(色は例です)で変えたんですが、 何故か色が反映されず、デフォルトの青色で表示されてしまいます。 ・hover、active、visitedも同じように変更しているが、そっちは反映されている ・リンクの色を変えようとするページにcss(仮にAとB)ファイルを2つ使っている ・Aではリンクに関する設定は記述してない。またAを省いても変わらない ・Bのリンク以外の指定を消しても同じ ・そもそも青色で設定している文字がない ・HTML文にも色変えの記述はない ・ブラウザ指定もしていない 何度自分で見直しても全く分からないのでお願いします

    • ベストアンサー
    • HTML
  • CSSでリンク色を設定したさいFireFoxで反映されません。

    FC2無料レンタルでホームページを作っているのですが、 <STYLE TYPE="text/css"> <!-- a:link { color: #000000; } a:visited { color: #000000; } a:hover { color: #CCFF66; } a:active { color: #CCFF66; } --> </STYLE> のCSSタグを使って、リンクした際の色を指定しています。 IE8.0でページを確認した際には、きちんと反映されているのですが、 FireFoxで確認すると、リンクが青色のままで、設定が反映されません。 (オンマウスのときの変更色のみ反映されています。) リンクする際は、aaa/aaa.htmlのような略した記述をしています。 一度リンクをクリックすると、設定が反映され、しばらくは有効なのですが、数日して、同じことをすると、また青色リンクに戻っています。 何か原因が分かる方いらしたら、教えて頂けると嬉しいです。 (URLを省略していない、もしくは同じディレクトリ内のページに省略した記述でリンクする際は、きちんと設定が反映されているようです。 これが、FireFoxの特徴なのか、こちらのPCの問題なのか、 分かりません。省略したURLは、使わないのが基本なんでしょうか…? 出来るなら、省略したURLを使いたいと思っています。)

  • リンクを右クリックするとページが変わる方法。

    よろしくお願いいたします。 ハイパーリンクをクリックすると リンク先に飛んでいきますが、 右クリックすると 左クリックと同じように リンク先に飛んでいく スクリプトがありましたら ご教授をお願いしたいのですが。 マウスの設定はそのままで。 よろしくお願いいたします。

専門家に質問してみよう