お世話になります。
http://bunjin.com/java/
こちらの「画像操作→スライドショーのように画像を表示する」を参考にして、
フェードインするスライドショーを2か所に表示させたいと考えています。
1か所なら上手くいくのですが、2か所目がエラーになってしまいます。
外部jsファイルに次のように記入し、
------------------------------------------------------
// JavaScript Document
var fade_speed = 10000;
var fade_duration = 10;
var image = new Array();
image[0] = '1.jpg';image[1] = '2.jpg';image[2] = '3.jpg';
var t;
var j = 0;
var p = image.length;
var pre_load = new Array();
for (i = 0; i < p; i++) {
pre_load[i] = new Image();
pre_load[i].src = image[i];
}
function start_fade() {
if (document.all) {
document.images.photo2.style.filter="blendTrans(duration=fade_duration)";
document.images.photo2.filters.blendTrans.Apply();
}
document.images.photo2.src = pre_load[j].src;
if (document.all) {
document.images.photo2.filters.blendTrans.Play();
}
j = j + 1;
if (j > (p - 1)) j = 0;
t = setTimeout('start_fade()', fade_speed);
}
photo[0] = '4.jpg';photo[1] = '5.jpg';photo[2] = '6.jpg';
var t2;
var j2 = 0;
var p2 = photo.length;
var pre_load = new Array();
for (i2 = 0; i2 < p2; i2++) {
pre_load[i2] = new Image();
pre_load[i2].src = photo[i2];
}
function start_fade2() {
if (document.all) {
document.images.photo3.style.filter="blendTrans(duration=fade_duration)";
document.images.photo3.filters.blendTrans.Apply();
}
document.images.photo3.src = pre_load[j2].src;
if (document.all) {
document.images.photo3.filters.blendTrans.Play();
}
j2 = j2 + 1;
if (j2 > (p2 - 1)) j2 = 0;
t2 = setTimeout('start_fade2()', 8000);
}
------------------------------------------------------
htmlには
<body id="top" onLoad="start_fade()">
<img src="1.jpg" name='photo2' />
<img src="4.jpg" name='photo3' />
のように記入しています。
後半の2か所目の指定がどこか足りない又は違うのではないかと思うのですが、
色々試してみても上手くいきません。
ご教授をお願いいたします。
No.1ベストアンサー
- 回答日時:
// JavaScript Document
var fade_speed = 10000;
var fade_duration = 10;
var image = new Array();
image[0] = '1.jpg';image[1] = '2.jpg';image[2] = '3.jpg';
var t;
var j = 0;
var p = image.length;
var pre_load = new Array();
for (i = 0; i < p; i++) {
pre_load[i] = {}; // ここはObjectにすべき
pre_load[i].src = image[i];
}
function start_fade() {
if (document.all) {
document.images.photo2.style.filter="blendTrans(duration=fade_duration)";
document.images.photo2.filters.blendTrans.Apply();
}
document.images.photo2.src = pre_load[j].src;
if (document.all) {
document.images.photo2.filters.blendTrans.Play();
}
j = j + 1;
if (j > (p - 1)) j = 0;
t = setTimeout('start_fade()', fade_speed);
}
var photo = []; // photoの宣言と配列設定がない
photo[0] = '4.jpg';photo[1] = '5.jpg';photo[2] = '6.jpg';
var t2;
var j2 = 0;
var p2 = photo.length;
var pre_load2 = new Array(); // pre_loadが上書きされている
for (i2 = 0; i2 < p2; i2++) {
pre_load2[i2] = {}; // pre_load2を参照かつObjectにすべし
pre_load2[i2].src = photo[i2]; // pre_load2を参照
}
function start_fade2() {
if (document.all) {
document.images.photo3.style.filter="blendTrans(duration=fade_duration)";
document.images.photo3.filters.blendTrans.Apply();
}
document.images.photo3.src = pre_load2[j2].src; // pre_load2を参照
if (document.all) {
document.images.photo3.filters.blendTrans.Play();
}
j2 = j2 + 1;
if (j2 > (p2 - 1)) j2 = 0;
t2 = setTimeout('start_fade2()', 8000);
}
<!-- start_fade2を呼出さないと動かない -->
<body id="top" onLoad="start_fade(); start_fade2();">
ブラウザを選んでしまうのはちょっと残念。今後の課題ということで。
ありがとうございます!
何か所も足りていなかったのですね。
参考に修正したらバッチリ動きました。
No.2の補足もありがとうございます。
大変助かりました!
No.2
- 回答日時:
>> pre_load[i] = new Image();
> pre_load[i] = {}; // ここはObjectにすべき
ごめん、勘違い。pre_load[i] = new Image();でよいです。(大汗)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
第3日曜日のみの日付を取得、...
-
javaScript textareaの一行あた...
-
択一形式のテストをつくりたいです
-
分岐処理(アルゴリズム)
-
特定のclassを表示、非表示にする
-
Javascript で可能でしょうか
-
APIを使って埋め込んだグーグル...
-
ASP.NETのコントロールの値をJa...
-
GoogleMap 住所から座標の取得
-
商品コードを入力で、商品名、...
-
javascriptにお詳しい方に質問...
-
アルファベットABCD…をスマート...
-
JavaScriptのindexedDBに格納し...
-
なぜmatchメソッドがエラーにな...
-
ホームページの最終更新日を他...
-
ページ最終行へジャンプする方法
-
GASでGoogleフォームの自動返信...
-
functionから別のfunctionを実...
-
javascriptで自動計算フォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報