アプリ版:「スタンプのみでお礼する」機能のリリースについて

たとえば、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>

質問がややこしくてすみません。
方法をお分かりの方はどなたか教えてください。よろしくお願いします。

A 回答 (5件)

こんな感じでしょうかね。



<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
    • good
    • 0
この回答へのお礼

イメージどおりに作ることができました。ありがとうございました。ボタンをクリックすることで別ページにリンクさせることも、色々試していると何とか解決ができました。今後もよろしくお願いします。

お礼日時:2002/08/12 23:49

補足です。


スクリプトコンポーネントファイル(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>の間でよかったのでしょうか?
他のタグは不要ですよ。
    • good
    • 0

>スクリプトコンポーネントの入力位置は


><head></head>の間でよかったのでしょうか?
いやいや、別ファイルですよ。
他のページからも流用できるようにコンポーネント化する方法です。

<STYLE>
.ChangeImg{behavior:url(ChangeImg.htc);}
</STYLE>
って記述があるでしょ?
これは classにChangeImgとあるエレメント内では、
スクリプトコンポーネントファイルの
ChangeImg.htcを使ってね。と言う意味です。

ですから、
ChangeImg.htcファイルとして保存してね。
    • good
    • 0

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
    • good
    • 0
この回答へのお礼

スクリプトコンポーネントは別ファイルにするということだったのですね。素人な質問に親切にお答え頂きありがとうございました。とても勉強になりました。今後もよろしくお願いします。

お礼日時:2002/08/12 23:54

こんな感じはどうですか?



<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:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!