• 締切済み

javaでロールオーバー設定で教えてください

外部ファイルで同じ設定でロールオーバーを設定しているのですが ポイントを合わせると画像が動く(ボタンでよくある下にへこむような動作)ものと動かないものが出てきます。 ロールオーバー自体はできているのですがその動きの違いは何なのでしょうか? できれば全て動くようにしたいのですが… <外部ファイル> if (document.images) { var img1on = new Image(); img1on.src = "img/c2.png"; var img1off = new Image(); img1off.src = "img/c1.png"; } function On(name) { if (document.images) { document.images[name].src = eval(name + 'on.src'); } } function Off(name) { if (document.images) { document.images[name].src = eval(name + 'off.src'); } } <html> <p> <a href="home.html" onMouseOver="On('img1')" onMouseOut="Off('img1')"><img src="img/c1.png" alt="ホームへ" name="img1" border="0"></a> </p> これ以上のことはしていません。(全て統一でこのタグの 画像の名前やリンク先しかいじっていません。) 今貼り付けたものはへこむ動作はせずにロールオーバーのみが可能なものです。 誰か教えていただけませんでしょうか? またへこむような動作はどこで設定されているのでしょうか? 色々調べてはいるのですが初心者なもので分かりません… 宜しくお願い致します。

みんなの回答

回答No.2

結構ソースをいじってしまいましたが。。 <script> //マウスオンの時のスクリプト function On(name) { if (document.images) { document.images[name].src = "c" + name + "_on.png"; } } //マウスオフ時のスクリプト function Off(name) { if (document.images) { document.images[name].src = "c" + name + "_off.png"; } } </script> <p> <a href="home.html" onMouseOver="On(0)" onMouseOut="Off(0)"> <img src="c0_off.png"></a> <a href="home.html" onMouseOver="On(1)" onMouseOut="Off(1)"> <img src="c1_off.png"></a> <a href="home.html" onMouseOver="On(2)" onMouseOut="Off(2)"> <img src="c2_off.png"></a> </p> こちらでいかがでしょう。 チェックブラウザはfirefox3.5のみです。 ie系だと動かないような気もしますが、チェックしてみてください。 ieで動かない場合はアドイベントで動くようになります。 アドイベントもさらにめんどくさい処理が必要なのですが。。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ご提示のスクリプトは、イメージをロールオーバーしているだけの機能のものです。 (記述方法には、少々疑問な点がいくつかありますが…) >ポイントを合わせると画像が動くものと動かないものが出てきます。 全てに同じ画像を使用しているのでしょうか? 基本的に、マウスのオン・オフで画像を入替えるだけの機能ですから、マウスオンのときの画像(c2.png)にボタンが押された状態の画像、マウスオフのときの画像(c1.png)に通常の状態の画像を設定してあげれば、マウスオンによって下にへこむように見えることになりますが、そういうことではないのでしょうか? もっとも、ボタンの押下げって通常の操作でいうとマウスクリックに当たるので、マウスオンでこのような動作をするのは、どうもギミック的で個人的には好きになれませんけど…

関連するQ&A

  • NETSCAPEで表示がうまくいかない

    折りたたみメニューのようなのを作成してます。 IEだと問題なく動くのですが、 NETSCAPEになると、マウスオーバー・オフで ロールオーバーの画像が変わらなかったり 表示が消えるはずの箇所が残ったりします。 NETSCAPEでも、ちゃんと動く用にしたいです。 どなたかご助言を頂けないでしょうか? ソースの中を抜粋しました <A href ="BOOK.html" onMouseOver="On('img10');" onMouseOut="Off('img10');"> <IMG src ="10-1.png" border="0" NAME = "img10" alt = ""> </A></DIV> <DIV class="Lmenu_Rmenu"> <A href ="CD.html" onMouseOver="On('img11');" onMouseOut="Off('img11');"> <IMG src ="11-1.png" border="0" NAME = "img11" alt = ""> </A></DIV> <DIV class="Lmenu_Rmenu"> <A href ="DVD.html" onMouseOver="On('img12');" onMouseOut="Off('img12');"> <IMG src ="12-1.png" border="0" NAME = "img12" alt = ""> </A></DIV> </DIV></div> <SCRIPT type="text/javascript" src="java.js"></SCRIPT> var img1on = new Image(); var img1off = new Image();  ・  ・ var img12on = new Image(); var img12off = new Image(); img1off.src = "1-1.png"; // 普段の画像 img1on.src = "1-2.png"; // ポイント時の画像  ・  ・ img12off.src = "12-1.png"; img12on.src = "12-2.png"; // ポイント時の処理 function On(name) { if (document.images) { document.images[name].src = eval(name + 'on.src'); } } // 放した時の処理 function Off(name) { if (document.images) { document.images[name].src = eval(name + 'off.src'); } }

  • ・JAVAを使って、ホームページを作成しています。

    ・JAVAを使って、ホームページを作成しています。 ・メニューのボタンに、マウスオーバーでボタンの画像を切り替える <!-- loadImage = new Image(); loadImage.src = "profile.gif"; // --> ・と同時に任意の画像を切り替える // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> ・というscriptを同時に使いたいのですが、どちらかだけになってしまったり、どちらも作動しません。 ・一つのボタンに2つのJAVAを使う場合何か特別な入力が必要なのでしょうか? ・それとも、ただ単純にボタンのタグが誤っているのでしょうか? ・どなたかご教授お願い致します。 ・ちなみにタグを全て載せると、 <SCRIPT Language="JavaScript"> <!-- loadImage = new Image(); loadImage.src = "bbs.gif"; // --> </SCRIPT> <script type="text/javascript"> <!-- if (document.images) { // 設定開始(使用する画像を設定してください) // 通常の画像 var img0 = new Image(); img0.src = "topic4.jpg"; // ポイント時の画像1 var img1 = new Image(); img1.src = "topic4.jpg"; // 設定終了 } // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> </script> とボタンのタグが、 <A HREF="../usatop.html"onMouseOver="On('img2')" "if(document.images) "myImage.src='bbs2.gif'" "onMouseOut="Off()""if(document.images) "myImage.src='bbs.gif'"><IMG SRC="bbs.gif" BORDER="0" name="myImage"></A> ・となっております。 ・よろしくお願いします!

    • ベストアンサー
    • Java
  • javaを使ってマウスオンでの画像切替について

    javaを使って、ある1つの画像にマウスを乗せると、 他の場所にある画像2つが同時に入れ替わるという事を行いたいのですが どうしても上手くいきません。 例えば・・・ ┌─────┐ │◇画像A◇ │ └─────┘ ┌─────┐ │○画像B○ │ └─────┘ ┌─────┐ │☆画像C☆ │ └─────┘ とあるとしたら、 画像Aにマウスを乗せた場合、画像Cと画像Dが 他の画像になるようにしたいのです。 ┌─────┐ │◇画像A◇ │←これにマウスオン └─────┘ ┏━━━━━┓ ┃●画像B● ┃ ┗━━━━━┛←画像Bと画像Cが ┏━━━━━┓←同時に他の画像に変わる ┃★画像C★ ┃ ┗━━━━━┛ 画像Aはマウスを乗せても変化は無いままで、 画像Bと画像Cは異なる画像です。 マウスを画像Aから放したら、元の画像に戻るようにしたいと考えています。 さらに、同ページ内に複数使用したいのです。      ~~~~~~~~~~~~~~~~~~~~~ if (document.images) { var img0 = new Image(); img0.src = "○画像B○"; var img1 = new Image(); img1.src = "●画像B●"; function On(name) { if (document.images) { document.images['ネーム'].src = eval(name + '.src');}} function Off() { if (document.images) { document.images['ネーム'].src = img0.src;}} を応用して、どうにかならないかな…と思ったのですが、 どうにもなりませんでした。 もしかしたら、応用のやり方が間違えているのかもしれません。 あまり詳しくないので・・・。 どこを探してもサンプル等見つからず、困っています。 どなたか教えて下さい。どうぞ宜しくお願いします。

  • ロールオーバーについて

    ロールオーバーをシンプルなjavascriptで実装するとの事でとあるサイトにて、以下のようなスクリプトがありました。 http://css-happylife.com/archives/2007/0621_0010.php ▼▼▼スクリプト▼▼▼ 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); } ▲▲▲スクリプト▲▲▲ DOMを使ってimgのソースを 画像「_off.」から「_on.」に書き換えているんだなということまではわかるのですが、 if(document.getElementsByTagName) とか、 if(window.addEventListener) 等の記述があります。 ifのあとの()の中身は i>0 や (i>5)&&(i<=10) 等、演算子を用いた条件を記述するタイプした目にしたことがないのですが、 これはどういった事を表しているのでしょうか? ご教授お願いいたします。

  • FirefoxでonMouseOver/Outの動作がされません。。。

    全くの初心者で恐縮ですが、どうしても判らなかったので投稿させていただきます。 onMouseOver/Outで画像を変化させるごく一般的なスクリプトを使用したいのですが、外部jsファイルから読み込ませるとどうしてもFirefoxで動作されません。 IEでは動くようですが、IEの場合間違った記述でも動作してしまう事がある、との事…。 また、外部jsファイルに置かずhtmlの中にスクリプトを記載した場合はFirefoxでも問題なく動きました。 エラーコンソールで確認すると「syntax error」となっており、記述に間違いがあるのは確かなようなのですが、検索にかけてもそれらしいものにはヒットしませんでした。 以下、作成しているファイルからコピペです。 ◆jsファイル if (document.images) { var img1on = new Image(); img1on.src = "img/1on.jpg"; var img1off = new Image(); img1off.src = "img/1off.jpg"; } function On(name) { if (document.images) { document.images[name].src = eval(name + 'on.src'); } } function Off(name) { if (document.images) { document.images[name].src = eval(name + 'off.src'); } } ◆htmlファイル ・<head>内に<script type="text/javascript" src="script.js"></script>を記載。 ・<body>内の該当リンク部分に下記の記載。 <a href="index.html" onMouseOver="On('img1')" onMouseOut="Off('img1')"><img src="img/1off.jpg" id="img1" /></a> 尚、スクリプトの内容はほぼこちら↓のサイト様の丸写し状態です。 http://www.tagindex.com/javascript/link/change1.html jsファイルのパスに間違いが無いか等、自分で考えられる事は全て確認してみたのですがどうしても判らず、どなたか詳しい方のお知恵を拝借出来ればと思います。 よろしくお願いいたします。

  • マウスオーバー・アウトの制御のソース

    複数のボタンでマウスオーバー・アウトの制御のソースを教えてもらったのですが、質問いたします。 この場合、このボタンはオーバーとアウト、それぞれ同じ画像を使用しているのですが、その場合でも全部違ったファイル名をつけなければいけないのでしょうか? 現在はそあしているのですが、何か無駄な気がして・・・。 よしくお願いします。 <SCRIPT LANGUAGE = "JavaScript"> <!-- if (document.images) { //if image object is available img1on = new Image(); // MouseOver Images img1on.src = "images/c1b.gif"; img2on = new Image(); img2on.src = "images/c2b.gif"; img3on = new Image(); img3on.src = "images/c3b.gif"; img1off = new Image(); // MouseOut Images img1off.src = "images/c1a.gif"; img2off = new Image(); img2off.src = "images/c2a.gif"; img3off = new Image(); img3off.src = "images/c3a.gif"; img4off = new Image(); } function imgOn(imgName) { if (document.images) { document[imgName].src = eval(imgName + "on.src"); }}   function imgOff(imgName) { if (document.images) { document[imgName].src = eval(imgName + "off.src"); }} //--> </SCRIPT>

  • ・JAVASCRIPTを使って、ホームページを作成しています。

    ・JAVASCRIPTを使って、ホームページを作成しています。 ・ JAVAを使って、ホームページを作成しています。 ・メニューのボタンに、マウスオーバーでボタンの画像を切り替える <!-- loadImage = new Image(); loadImage.src = "profile.gif"; // --> ・と同時に任意の画像を切り替える // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> ・というscriptを同時に使いたいのですが、どちらかだけになってしまったり、どちらも作動しません。 ・一つのボタンに2つのJAVAを使う場合何か特別な入力が必要なのでしょうか? ・それとも、ただ単純にボタンのタグが誤っているのでしょうか? ・どなたかご教授お願い致します。 ・ちなみにタグを全て載せると、 <SCRIPT Language="JavaScript"> <!-- loadImage = new Image(); loadImage.src = "bbs.gif"; // --> </SCRIPT> <script type="text/javascript"> <!-- if (document.images) { // 設定開始(使用する画像を設定してください) // 通常の画像 var img0 = new Image(); img0.src = "topic4.jpg"; // ポイント時の画像1 var img1 = new Image(); img1.src = "topic4.jpg"; // 設定終了 } // ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> </script> とボタンのタグが、 <A HREF="../usatop.html"onMouseOver="On('img2')" "if(document.images) "myImage.src='bbs2.gif'" "onMouseOut="Off()""if(document.images) "myImage.src='bbs.gif'"><IMG SRC="bbs.gif" BORDER="0" name="myImage"></A> ・となっております。 ・よろしくお願いします!

  • JavaScriptロールオーバーで画像が変わりません

    <SCRIPT TYPE="text/javascript"> <!-- if (document.images) { var imgtopon = new Image(); imgtopon.src = "images/menu/topon.jpg"; // ポイント時の画像 var imgtopoff = new Image(); imgtopoff.src = "images/menu/topoff.jpg"; // 通常の画像 } // ポイント時の処理 function On(name) { if (document.images) { document.images[name].src = eval(name + 'on.src'); } } // 放した時の処理 function Off(name) { if (document.images) { document.images[name].src = eval(name + 'off.src'); } } // --> </SCRIPT> </head> <body> <div id="headwrapper"> </div> <div id="wrapper"> <div id="header"> <h1>~</h1> </div> <div id="pagebody"> <A HREF="~" onMouseOver="On('imgtop')" onMouseOut="Off('imgtop')"><IMG SRC="images/menu/topoff.jpg" ALT="sample1" BORDER="0" WIDTH="102" HEIGHT="54" NAME="imgtop"></A> ↑↑↑終了 ポイントしていないときの画像は表示されますが、ロールオーバーしてもそのままの状態です。 宜しくお願いします。

  • ロールオーバーの外部ファイル化

    オンマウスにすると画像変化し、マウスを離すと元に戻る設定にしたいです。 複数の画像をロールオーバーさせたい場合、今までは外部ファイルに ↓↓ if (document.images) { // section on // test1 var test1on = new Image(); test1on.src = "img/test-02-02.jpg"; var test1off = new Image(); test1off.src = "img/test-01.jpg"; // test3 var test3on = new Image(); test3on.src = "img/test-03-03.jpg"; var test3off = new Image(); test3off.src = "img/testl-03.jpg"; // section off } // point section function On(id) { if (document.images) { document.images[id].src = eval(id + 'on.src'); } } // out section function Off(id) { if (document.images) { document.images[id].src = eval(id + 'off.src'); } } の様な記述をし、 <a href="1.html" onmouseover="On('test1')" onmouseout="Off('test1')"><img src="img/test-01.jpg" alt="img" id="test1" /></a> <a href="3.html" onmouseover="On('test3')" onmouseout="Off('test3')"><img src="img/test-03.jpg" alt="img" id="test3" /></a> として表示させていたのですが、今回<a href~ を使わないで<img~のみで構築したいのです。加えて、<img~の記述を上記の様にhtml内に長く書くのでなく、出来るだけシンプルにしたいのですが、どの様な改善を加えればよろしいのでしょうか。 分かりにくい説明ですが、ご理解ご指導の程よろしくおねがいします。

  • 次のJSで同じ変数名

    swichをを繰り返し書きたくないのですが C言語の#defineといったような機能はJSにはないのでしょうか? "off.jpg"も2箇所で使われていますがこれについてもメンテのために一箇所に指定のですがこちらも定義できるでしょうか? <script language="JavaScript"> var on=new Image(); var off=new Image(); on.src="on.jpg"; off.src="off.jpg"; function tooff(img) { if(img=="swich")document.images[img].src=off.src; } function toon(img) { if(img=="swich")document.images[img].src=on.src; } </script> <a href="gomi.htm" onmouseout="tooff('swich')" onmouseover="toon('swich')"> <img src="off.jpg" name="swich" width="99" height="99"/> </a>

専門家に質問してみよう