🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

470閲覧

JS 画像 横スライド エラー

camellog

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/03/02 15:19

前提・実現したいこと

JavaScriptで
矢印をクリックすると画像が切り替わる処理をしたいです。
1周目は問題なく動きます。

発生している問題・エラーメッセージ

2週目に以下のエラーメッセージが発生しました。
エラーメッセージ
GET file:///D:/git_slider_js/slide_imags/undefined net::ERR_FILE_NOT_FOUND

```------HTML------ <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/index.css"> <script src="js/index.js" defer></script> <title>Document</title> </head> <body> <div id="img_area" class="img_area"> <p><img id="imgItem" class="imgItem" src="image/main_visual_2-0x0.jpg" alt=""></p> <p id="left" class="left"></p> <p id="right" class="right"></p> </div> </body> </html> ```Javascript コード

const imgs = [
"./image/main_visual_2-0x0.jpg",
"./image/main_visual_6-0x0.jpg",
"./image/main_visual_7-0x0.jpg",
"./image/th_shutterstock_756071179.jpg",
];
const imgItem = document.getElementById('imgItem');
const left = document.getElementById('left');
const right = document.getElementById('right');
let count = 0;

right.addEventListener('click', function() {
count ++;
imgItem.src = imgs[count];
if(count >= imgs.length){
count = 0;
}
})

### 試したこと 1 ディレクトリを別にしていたのですべて同じディレクトリに保存してみました。 結果 同じエラーが発生 2 エラーを調べると パスがちゃんと指定されていないとありますが 二週目の imgs[0]だけがエラー発生します。 imgs[1]~[3]は表示されます。 初めての投稿で読みずらいと思いますがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

const imgs = [
"./image/main_visual_2-0x0.jpg",
"./image/main_visual_6-0x0.jpg",
"./image/main_visual_7-0x0.jpg",
"./image/th_shutterstock_756071179.jpg",
];

imgs.lengthの値は4
imgs[0]からimgs[3]になる
存在しないimgs[4]を呼びだしていたので
エラーが出ていました。

if(count > imgs.length)
ではなく
if(count >= 3)
または
if(count > (imgs.length - 1))
で解決しました!!!!

投稿2021/03/03 14:18

camellog

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

js

1// if(count >= imgs.length){ 2// ↓ 3 if(count > imgs.length){

投稿2021/03/03 03:40

kei344

総合スコア69596

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

camellog

2021/03/03 13:30

回答ありがとうございます。 kei344さんの回答を試しましたが変わらずエラーが発生します。 ディレクトリ構造 slide_test index.html (ファイル) css (ディレクトリ) index.css (ファイル) image(ディレクトリ) main_visual_2-0x0.jpg (ファイル) main_visual_2-0x0.jpg (ファイル) main_visual_2-0x0.jpg (ファイル) main_visual_2-0x0.jpg (ファイル) js (ディレクトリ) index.js imgs配列に格納している画像のパスの指定はあっていますでしょうか?
kei344

2021/03/03 14:02

動くサンプル: https://jsfiddle.net/yuo7r8pb/ すみません、ちゃんと動かしてから回答をすればよかったです。 配列のインデックスは0から始まるので、そことか順番とか修正しないといけないですね。
camellog

2021/03/03 14:38

いえいえ、初歩的なとこで躓いてた自分が悪いんですよw kei344さんの回答がきっかけで気づけたので助かりました! わざわざサンプルまで作っていただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問