Aボタンを押すとBの画像が切り替わり、もう一度Aボタンを押すと元の画像に戻るという
ものを作っています。
こちらのページで色々調べて、下記のようなスクリプトを使いました。
<SCRIPT language="JavaScript">
<!--
num = 2; // 入れ替える画像の枚数
cnt = 0;
img0='images/img01.gif';
img1='images/img02.gif';
function changeImage1() {
cnt++;
if( (cnt % num) == 0) {
document.gazou1.src = img1;
}
else{
document.gazou2.src = img0;
}
}
num = 2; // 入れ替える画像の枚数
cnt = 0;
img2='images/plan/img03.gif';
img3='images/plan/img04.gif';
function changeImage2() {
cnt++;
if( (cnt % num) == 0) {
document.gazou3.src = img2;
}
else{
document.gazou4.src = img3;
}
}
//-->
</SCRIPT>
<img src="images/img01.gif" name="gazou1" onClick="JavaScript:changeImage1()">
<br>
<img src="images/img03.gif" name="gazou1" onClick="JavaScript:changeImage2()">
でも、クリックしても切り替わらない時があり、複数クリックしないといけません。
一回で切り替わる時もあります。
ページ内に、画像違いで同じ物が2つ設置してあり上手くいかないのかと思うのですが・・・
どなたかお分かりになる方がいらっしゃいましたら、教えてください。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
画像の切り替えはImageオブジェクトを使うのが一般的
ざっとこんな感じ
<script>
var imgs=[
[(new Image()),new Image()]
,[new Image(),new Image()]
];
imgs[0][0].src="1.jpg";
imgs[0][1].src="2.jpg";
imgs[1][0].src="3.jpg";
imgs[1][1].src="4.jpg";
function changeImg(obj,num){
obj.src=(obj.src==imgs[num][0].src)?imgs[num][1].src:imgs[num][0].src;
}
</script>
<img src="1.jpg" onclick="changeImg(this,0)">
<img src="3.jpg" onclick="changeImg(this,1)">
とても早いご回答ありがとうございました。
こちらのスクリプトで無事に動きました。
初心者の私にも分かりやすいシンプルなスクリプトで
ありがたかったです。
ベストアンサーに選ばせていただきました。
No.3
- 回答日時:
<img> の中に、切り替わる画像URLを列挙できる、汎用的なサンプル
<script>
window.addEventListener('click', function(ev){
var e = ev.target;
while (e && !/\bclickflap\b/.test(e.className)) e = e.parentNode;
var flap = function(img) {
var list = img.getAttribute('data-list').split(/\s*,\s*/), n = list.length;
var point = 0, src = img.getAttribute('src');
for (var i=0; i<n; i++) if (src == list[i]) point = (i + 1)%n;
img.src = list[point];
};
if (e && e.tagName == 'IMG') ev.preventDefault(), flap(e);
if (e && e.tagName == 'A' && e.hash) ev.preventDefault(), flap(document.getElementById(e.hash.substr(1)));
}, false);
</script>
A画像クリックで、B画像が切り替わる例
<a class=clickflap href=#gazou1><img src=A.png></a><img id=gazou1 src=B1.png data-list="B1.png, B2.png">
<a class=clickflap href=#gazou2><img src=A.png></a><img id=gazou2 src=B3.png data-list="B3.png, B4.png, images/B5.png">
B画像クリックで、B画像が切り替わる例
<img src=B1.png class=clickflap data-list="B1.png, B2.png">
<img src=B4.png class=clickflap data-list="B3.png, B4.png, images/B5.png">
No.2
- 回答日時:
う~~んと・・・
>Aボタンを押すとBの画像が切り替わり~~
ボタンらしきものがありませんが、画像をクリックするとその画像が切り替わるということで良いのでしょうか?
ご提示のサンプルだと、
imgタグに同じname=gazou1となっているので、nameだけでは区別できなくなっています。
また、HTMLにはgazou1しかないのに、スクリプトにはgazou1~gazou4まで記述されていて、何だか変ですね。
きっと、画像が切り替わるものを2つ設置したいのかなと想像しましたが、その際に、スクリプト内の変数のcntやnumが両方共用になっちゃってますので、処理中に混乱が起きませんか?
個別に処理をなさりたければ、変数も変えておかないとうまくないです。
(互いに関連を持った処理であるなら別ですが)
すでにNo1様がノーマルな回答をなさっていますので、すこし違うものを・・・
(こんなのでも可能と言う参考に。ただし画像の先読みはしていません。)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
</head>
<body>
<p><img src="A.jpg" id="gazou1">
<p><img src="img/photo01.jpg" id="gazou2">
<p><img src="img1.gif" id="gazou3">
<script type="text/javascript">
//(画像のid、uriの配列)のセットで画像チェンジを設定
imageChanger("gazou1", ["A.jpg", "B.jpg", "C.jpg"]);
imageChanger("gazou2", ["img/photo01.jpg", "img/photo02.jpg"]);
imageChanger("gazou3", ["img1.gif", "img2.gif", "img3.gif", "img4.gif"]);
function imageChanger(id, uris){
var t = document.getElementById(id);
var c = 0, n = uris.length;
t.onclick = function(){ t.src = uris[ c = ++c % n]; }
}
</script>
</body>
</html>
読み返してみると、意味の分からない質問でしたね。
出来なくて焦っていたもので、すみません・・・。
こちらの方法もあるんですね。
当てはめて勉強させていただきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- PHP 画像が表示出来ません。 1 2023/02/02 16:30
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptで変更した属性の元...
-
【OpenCV】二値画像後、白の部...
-
MFCで画像を表示させているので...
-
imageクラスからiconクラスに変...
-
error LNK2019 未解決のシンボ...
-
(javascript)HTMLで指定した...
-
指定したフォルダの画像を一括...
-
jQuery 複数のfind()
-
複数画像のランダム複数表示(...
-
createElementによる空要素の生...
-
MAX関数を使ってからLEFT JOIN...
-
javascriptで毎月替わる画像
-
Slick.jsのオプションrtlについて
-
jQueryで、リンクURLの一致を確...
-
jQueryで同じクラス名のものを...
-
フッター上部に謎の隙間
-
アップロードファイルの種類に...
-
HTMLで条件分岐はできますか?
-
大分類・中分類・小分類
-
HTMLですCSSです 画像のように...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptで変更した属性の元...
-
MFCで画像を表示させているので...
-
画像が表示でnull; this.src
-
error LNK2019 未解決のシンボ...
-
(javascript)HTMLで指定した...
-
外部javascriptの重複を防ぐには
-
libjpegライブラリの使い方につ...
-
Vb.net2005での画像の合成方法
-
外部ファイルにしたら文字化け...
-
jQuery 複数のfind()
-
HTMLからimgのsrcのみを正規表...
-
html内にスライドショーを複数設置
-
条件分岐でキーが入力されてい...
-
複数画像のランダム複数表示(...
-
ダイアログから画像ファイルは...
-
【OpenCV】二値画像後、白の部...
-
"lightbox"の"CLOSE"ボタンクリ...
-
onclickで画面が固まる・・・ら...
-
pythonで、tkinterとpillowの組...
-
imgボタンにfocusの当て方
おすすめ情報