質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1096閲覧

jQuery スライドショー インデックス番号の更新

yukarichang

総合スコア14

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2021/04/27 05:37

編集2021/04/27 05:47

『jQuery 最高の教科書』という参考書のp.135のスライドショー実装について質問があります。
添付するコードの、jQuery記述の1番最後の文『currentIndex = nextIndex;』の意味が分かりません。
現在のスライドのインデックス番号を更新する1文です。

例えば『1+1=2』だとか、『1+2=3』という文があったとして、これは数式として理解できます。
ですが、先ほどの『currentIndex = nextIndex;』というのは、『0=1』と言っているようなもので、意味が分かりません。
どなたか分かりやすく教えて下さい。

この参考書のサンプルサイトがありますので、どのようなスライドショーかご確認下さい。
https://www.shiftbrain.com/book/jquery/sample/chapter05/01/

該当のソースコード

html

1<div class="slideshow"> 2 <img src="slide1.jpg"> 3 <img src="slide2.jpg"> 4 <img src="slide3.jpg"> 5 <img src="slide4.jpg"> 6</div>

css

1.slideshow { 2 position: relative; 3} 4 5.slideshow img { 6 position: absolute; 7 display: none; 8}

jQuery

1var $slides = $('.slideshow').find('img'), 2 slideCount = $slides.length, /*4つ画像があるので、4が格納されている*/ 3 currentIndex = 0; 4 /*現在表示しているスライドが全体のうち何番目かを表すために使用する。0番目の画像を最初に表示したいので、0を設定している。*/ 5 6$slides.eq(currentIndex).fadeIn(); 7setInterval(showNextSlide,2000); 8 9function showNextSlide(){ /*オリジナルの関数*/ 10 var nextIndex = (currentIndex + 1) % slideCount; 11 $slides.eq(currentIndex).fadeOut(); 12 $slides.eq(nextIndex).fadeIn(); 13 currentIndex = nextIndex; /*←ここがこの質問の主題*/ 14}

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

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

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

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

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

guest

回答2

0

ベストアンサー

currentIndex = nextIndex;

単にカレントを次のインデックス番号に上書きしているだけです

投稿2021/04/27 06:06

yambejp

総合スコア114583

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

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

yukarichang

2021/04/27 10:59

上書きという表現がしっくりきました。ありがとうございました。
guest

0

プログラムにおいて=は「左辺に右辺を代入する」という意味になります。

以下補足です。
currentIndex = 0;と似たようなものですよ。
こちらは変数currentIndexに0を代入するという意味になりますが。

currentIndex = nextIndex;
変数currentIndexに変数nextIndexの値を代入する…
1回目の処理では変数nextIndexの中身は1なのでcurrentIndex=1;となります。

スライドショーですから一定の時間ごとに画像を変える処理が必要になりますので、
変数currentIndexの数値をループさせるたびに変数nextIndexを代入して更新しているのです。

投稿2021/04/27 06:16

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yukarichang

2021/04/27 11:00

理解が深まりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問