たとえば、1.gif - 2.gif , 3.gif - 4.gif,5.gif - 6.gif,7.gif - 8.gif,9.gif - 10.gif
の画像をついにしてボタンとして利用するとします。
最初に表示されるボタンは 1.gif , 3.gif ,5.gif , 7.gif , 9.gif の5つです。
JavaScriptで1.gifボタンをクリックしたら、2.gifボタンに画像が変わり、
3.gifボタンをクリックしたら、4.gifボタンに画像が変わるように(残りの画像も同様)したいと
考えています。この時、1.gif , 3.gif ,5.gif , 7.gif , 9.gifのいずれかのボタンがクリックされた
時点で、直前に変更していた 2.gif , 4.gif ,6.gif , 8.gif , 10.gifのいずれかのボタンは最初のボタン
の状態に戻したいと考えています。
どのようにJavaScriptを記述すると可能なのでしょうか。
1つのボタンをクリックすると別の画像に変わる方法は色々なHPを参考に↓の記述でなんとかできたのですが、
複数のボタンになるとどのように修正していけばうまくいくのかわかりません。
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT language="JavaScript">
<!--
imgnum=1;
function changeImage(){
if(imgnum==1){
document.myimg.src="2.gif";
imgnum=2;
}else if(imgnum==2){
document.myimg.src="1.gif";
imgnum=1;
}
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<CENTER>
<A href="javascript:changeImage()"><IMG src="1.gif" name="myimg" border=0></A>
</CENTER>
</BODY>
</HTML>
質問がややこしくてすみません。
方法をお分かりの方はどなたか教えてください。よろしくお願いします。
No.1
- 回答日時:
こんな感じはどうですか?
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<TITLE></TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function ig1_onclick() {
if (ig1.src=="img2.gif") {
ig1.src="img1.gif";
} else {
ig1.src="img2.gif";
}
}
function ig2_onclick() {
if (ig2.src=="img3.gif") {
ig1.src="img4.gif";
} else {
ig1.src="img3.gif";
}
}
function ig3_onclick() {
if (ig3.src=="img5.gif") {
ig1.src="img6.gif";
} else {
ig1.src="img5.gif";
}
}
function ig4_onclick() {
if (ig4.src=="img7.gif") {
ig1.src="img8.gif";
} else {
ig1.src="img7.gif";
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<P>
<IMG id=ig1 src="img1.gif" LANGUAGE=javascript onclick="return ig1_onclick()">
<IMG id=ig2 src="img3.gif" LANGUAGE=javascript onclick="return ig2_onclick()">
<IMG id=ig3 src="img5.gif" LANGUAGE=javascript onclick="return ig3_onclick()">
<IMG id=ig4 src="img7.gif" LANGUAGE=javascript onclick="return ig4_onclick()">
</P>
</BODY>
</HTML>
この回答への補足
ご回答頂きましてありがとうございます。上記の方法をそのままコピーして試して見たのですが、私のやり方が悪いのか、1をクリックしたら2には変わるのですが、3をクリックすると4に、5をクリックすると6に、7をクリックすると8に変わらず、3をクリックすると1のボタン部分が3に変わったり、5をクリックすると1のボタン部分が5に変わったり、7をクリックすると1のボタン部分が7に変わったりしてしまい、イメージどおりにならなかったのですが、私のやり方がどこかまずかったのでしょうか?
補足日時:2002/08/11 20:33No.2
- 回答日時:
IE限定で
htmファイルは
<HTML>
<head>
<TITLE></TITLE>
<STYLE>
.ChangeImg{behavior:url(ChangeImg.htc);}
</STYLE>
</head>
</HEAD>
<BODY>
<P>
<IMG class=ChangeImg src="1.gif" value="2.gif">
<IMG class=ChangeImg src="3.gif" value="4.gif">
<IMG class=ChangeImg src="5.gif" value="6.gif">
<IMG class=ChangeImg src="7.gif" value="8.gif">
<IMG class=ChangeImg src="9.gif" value="10.gif">
/P>
</BODY>
</HTML>
スクリプトコンポーネント(ChangeImg.htc)は
<script language="jscript">
attachEvent("onclick", event_onclick);
function event_onclick()
{
var a;
a = src;
src = value;
value = a;
}
</script>
こんな感じになります。
この回答への補足
ご回答頂きありがとうございます。上記の方法を試してみたのですが、ボタンをクリックしても何も変化がありませんでした。初心者なので、基礎的なことを聞くようなのですが、スクリプトコンポーネントの入力位置は<head></head>の間でよかったのでしょうか?
補足日時:2002/08/11 20:35スクリプトコンポーネントは別ファイルにするということだったのですね。素人な質問に親切にお答え頂きありがとうございました。とても勉強になりました。今後もよろしくお願いします。
No.3ベストアンサー
- 回答日時:
こんな感じでしょうかね。
<html>
<head>
<title></title>
<script language="JavaScript">
<!--
var img = new Array(
"1.gif","2.gif",
"3.gif","4.gif",
"5.gif","6.gif",
"7.gif","8.gif",
"9.gif","10.gif");
function changeImage(id){
var btn = new Array(
document.btn0,
document.btn1,
document.btn2,
document.btn3,
document.btn4);
for (i = 0; i < 5; i++) {
if (id == i) {
btn[i].src = img[i * 2 + 1];
} else {
btn[i].src = img[i * 2];
}
}
}
//-->
</script>
</head>
<body>
<a href="JavaScript:changeImage(0)"><img src="1.gif" name="btn0" border="0"></a>
<a href="JavaScript:changeImage(1)"><img src="3.gif" name="btn1" border="0"></a>
<a href="JavaScript:changeImage(2)"><img src="5.gif" name="btn2" border="0"></a>
<a href="JavaScript:changeImage(3)"><img src="7.gif" name="btn3" border="0"></a>
<a href="JavaScript:changeImage(4)"><img src="9.gif" name="btn4" border="0"></a>
</body>
</html>
この回答への補足
イメージどおりに作ることができて本当に助かりました。実は、左右に区切られたフレームページの左側にこのボタンがあり、ボタンをクリックすると、右側に指定したHTMLファイルを表示させようと思っているのですが、上記のようにボタンを設定した上に、さらにファイルも開く設定をするのは可能なのでしょうか?<a href=~>の前に<A onClick="**.htm" target="main" style = "cursor : pointer>と記述してみるとうまくいくかと試してみたところ、ファイルが開かなかったのですが何が悪いのか原因がお分かりでありましたら、教えて頂けないでしょうか?補足として質問を追加して申し訳ありませんが、よろしくお願いします。
補足日時:2002/08/11 20:11イメージどおりに作ることができました。ありがとうございました。ボタンをクリックすることで別ページにリンクさせることも、色々試していると何とか解決ができました。今後もよろしくお願いします。
No.4
- 回答日時:
>スクリプトコンポーネントの入力位置は
><head></head>の間でよかったのでしょうか?
いやいや、別ファイルですよ。
他のページからも流用できるようにコンポーネント化する方法です。
<STYLE>
.ChangeImg{behavior:url(ChangeImg.htc);}
</STYLE>
って記述があるでしょ?
これは classにChangeImgとあるエレメント内では、
スクリプトコンポーネントファイルの
ChangeImg.htcを使ってね。と言う意味です。
ですから、
ChangeImg.htcファイルとして保存してね。
No.5
- 回答日時:
補足です。
スクリプトコンポーネントファイル(ChangeImg.htc)は、
ANo.#2で書いたそのままで保存します。
---この下から---
<script language="jscript">
attachEvent("onclick", event_onclick);
function event_onclick()
{
var a;
a = src;
src = value;
value = a;
}
</script>
---この上まで---
><head></head>の間でよかったのでしょうか?
他のタグは不要ですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c++std::string型をTCHARに変換...
-
JSPでの画像ファイル表示
-
画像ファイルの合成
-
一つのページで二つ動かすのは...
-
ステータスバーの表示について
-
画面が真っ白になるのはどうして?
-
マウスをクリックで画像・・・
-
MAX関数を使ってからLEFT JOIN...
-
iframe内のリンクが飛ばないの...
-
jqueryで要素の中身を要素の外...
-
変数内容をHTML内で表示する方法
-
removeEventListenerについて
-
CSS <div>の入れ子が反映さ...
-
複数画像のランダム複数表示(...
-
フッター上部に謎の隙間
-
外部javascriptの重複を防ぐには
-
Ctrl+F(検索)の窓を出したいの...
-
CSSで背景をランダム表示さ...
-
ダブルクォーテーションが消え...
-
ネストされたチェックボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c++std::string型をTCHARに変換...
-
画面が真っ白になるのはどうして?
-
Excel VBA マクロ 画像(...
-
C言語のポインタ表現
-
ランダムに画像を表示し、ポッ...
-
JSPでの画像ファイル表示
-
javascriptで複数の画像をラン...
-
日替わりで画像を変更したい
-
フォームに入力された値により...
-
Javascriptで画像を水面のよう...
-
クリックするたびに画像を変える
-
ファイル名の頭にゼロを付ける...
-
クリックした自身の画像を別画...
-
IE8でのjavascriptエラーについて
-
簡単なJavaScriptなんですが
-
小さい写真にマウス置くと拡大...
-
ロールオーバー効果にならない。
-
クリックして変更した画像を他...
-
htmlで、たくさんのgif画像を、...
-
javascriptの sx, sy, sw, sh, ...
おすすめ情報