• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:こんばんは。)

JavaScriptで滑らかに絵を変更する方法を探す

このQ&Aのポイント
  • HPにJavaScriptを導入して、絵をFLASHではなくJSで複数入れ替えたいと思っています。
  • 参考にしたサイトはいくつかありますが、まだ解決策にたどり着けていません。
  • 滑らかに絵を変更するためのスクリプトがあれば教えていただけると助かります。

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

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

なんかよくわからないけど… ご参考まで。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head><title>test</title> <style type="text/css"> #screen, #screen img { width:600px; height:400px; } #screen { position:relative; } #screen img { position:absolute; } #images { display:none; } </style> <script type="text/javascript"><!-- window.onload = function() { var index = 0, tId; var second = 10, speed = 40; // 書換え間隔(秒), 変化速度 var elm = document.getElementById('images').getElementsByTagName('IMG'); var scrn = document.getElementById('screen'); setInterval(change, second * 1000); function change(){ var img = elm[index].cloneNode(false); setOpacity(img, 0); index = ++index%elm.length; scrn.appendChild(img); tId = setInterval(apear(img), speed); } function apear(e) { var o = 0; return function() { o = o<96?(o + 4):100; setOpacity(e, o); if (o == 100) { clearInterval(tId); while (scrn.childNodes.length>1) scrn.removeChild(scrn.firstChild); } } } function setOpacity(e, o) { e.style.opacity = o/100; e.style.filter = 'alpha(opacity=' + o + ')'; } } --></script> </head> <body> <div id="screen"><img src="Default.jpg" alt="defalut"></div> <div id="images"> <img src="A.jpg" alt="A"> <img src="B.jpg" alt="B"> <img src="C.jpg" alt="C"> <img src="D.jpg" alt="D"> <img src="E.jpg" alt="E"> </div> </body> </html>

buzinesswa
質問者

お礼

ソースまで態々有難う御座います。 まだ私自身も実験していませんが心から嬉しかったです。 本当に有難う御座いました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3
すると、全ての回答が全文表示されます。
  • pasocom
  • ベストアンサー率41% (3584/8637)
回答No.2

おはよう。 下記「JAVATEAはいかが?」から 「JAVATEA13:画像の切替を自動的に行います。」を参照下さい。 http://www.geocities.jp/digitwland/javatea/javatea.html なお、「滑らかに絵を変更したい」とは画像がフェードアウトして別の画像に変わる、という意味でしょうか。 それですとフェードアウトする過程の「薄くなった」画像も何枚か用意して、挟み込むことになるでしょう。

buzinesswa
質問者

お礼

ありがとうございます。 『フェードアウト』を言う動作だったのですね・・・ 誘導サイト様は似ていますのでもう少し検索をしてみようと思います。

すると、全ての回答が全文表示されます。
  • aurumnet
  • ベストアンサー率43% (51/117)
回答No.1

フェードイン・フェードアウトを同時におこなってみては? 参考URL http://javascript.eweb-design.com/0814_fio.html 動作確認はしておりませんが・・・ <!-- // 画像のフェードイン・フェードアウト spd = 50; // 変化させる間隔(ミリ秒単位) ntc = 2; // 何%ずつ変化させるか cnt = 0; function fdInOutImg(img1,img2) { document.images[img1].filters['alpha'].opacity = cnt; document.images[img2].filters['alpha'].opacity = 100-cnt; cnt += ntc; if(cnt >= 100) return; setTimeout("fdInOutImg('"+img1+"','"+img2+"')",spd); } //-->

buzinesswa
質問者

お礼

ご教授有難う御座います。 ソースも今から試してみようと思います!!

すると、全ての回答が全文表示されます。

関連するQ&A