• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プログラムのみで複雑に画像を変える方法役)

プログラムを使って複雑な画像変更を行う方法

このQ&Aのポイント
  • プログラムを使用して、クリックすると画像が次々と変わる機能を作りたいです。
  • 画像の枚数が増えたり、複雑な動作を作る場合、プログラムの構造が複雑になってしまいます。
  • フラッシュを使用せずに、プログラムだけで同じ位置で画像を変える方法を探しています。

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

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

指定した順に画像を変えたいということでしょうか? こんなんではどうでしょうか?(配列で指定した分だけ順に変わる) (インデントは全角空白になっています) function changer(image, n){  if(n==undefined) n = 0;  document.images[0].src = image[n++].src;  if(n<image.length) setTimeout(function(){   changer(image, n);  }, 100); } 呼び出しは、  onclick="changer([img1,img2,img3,img2,img1])" みたいな感じ。 表示の時間も変えたければ、画像の変数とペアで指定すれば可能かと。 複雑になると、HTMLソースが長くなるのが嫌なら、別に  paternA = [img1,img2,img3,img2,img1]; などと定義しておいて、HTMLでは  onclick="changer(paternA)" とか。 いろいろなpaternを配列にあらかじめセットしておいて、  onclick="changer(1)" みたいなのでもいけそう。 というか、そのまえに img1、img2、img3 などを配列にするのが先なのかも。 ついでに… > var img1.src = "sample1.gif"; > var img2.src = "sample2.gif"; > var img3.src = "sample3.gif"; の部分はvar宣言しちゃってはダメでは?

その他の回答 (2)

回答No.2

<script type="application/javascript; version=1.8"> const ImageLoader =  (function (src)   let (i = new Image)    (i.src = src, i)); //いまいち const ImageChanger =  (function (target, images, sno)   (function ()    target.src = images[(sno < images.length) ? sno++: (sno = 0)].src)); var images = ['sample1.gif', 'sample2.gif', 'sample3.gif'].map (ImageLoader); var changer = ImageChanger (document.querySelector ('img'), images, 0); setInterval (changer, 100); </script> もし、さしつかえなければ、しつもんをりかいしたところで、とじてもらえないだろうか。 (まだ、かいけつしていないのだろうかと、なんどとなくみてしまう。)

  • shiren2
  • ベストアンサー率47% (139/295)
回答No.1

あんまり美しくないですがこんな感じですかね。 インデントは全角スペースになっています。 <html> <head>  <script type="text/javascript">   function imageChange(img, i){    // 初期値    if(i == undefined) i = 1;    // 終了条件    if(3 < i) return;    // sample1.gif    img.src = "sample" + i + ".gif";    // インクリメントして再実行    setTimeout(function(){ imageChange(img, i+1) }, 2000);   }  </script> </head> <body>  <img src="omote.jpg" width="100" height="50" onclick="imageChange(this)" /> </body> </html>

関連するQ&A