回答編集履歴

1

コメント追加と軽微な修正

2020/02/04 02:17

投稿

thyda.eiqau
thyda.eiqau

スコア2982

test CHANGED
@@ -16,17 +16,17 @@
16
16
 
17
17
  /**
18
18
 
19
- * @param {[array]} images img.src に指定できる画像への path の配列
19
+ * @param {array} images <img src=""> に指定できる画像への path の配列
20
20
 
21
- * @param {[number]} interval 切り替えの間隔 (ミリ秒)
21
+ * @param {number} interval 切り替えの間隔 (ミリ秒)
22
22
 
23
- * @param {[string]} targetQuery 切り替え表示させる img を指定するセレクタ
23
+ * @param {string} targetQuery 切り替え表示させる <img> を指定するセレクタ
24
24
 
25
25
  */
26
26
 
27
27
  constructor(images, interval, targetQuery) {
28
28
 
29
- if(images.length === 0) {
29
+ if(!images || images.length === 0) {
30
30
 
31
31
  throw new Error(`Invalid images`);
32
32
 
@@ -72,9 +72,15 @@
72
72
 
73
73
  this.intervalId = window.setInterval(() => {
74
74
 
75
+ // this.images の中で、次に表示する画像の位置を示す index
76
+
77
+ // this.images.length と等しくなったら、 0 に戻す
78
+
75
79
  let index = this.currentIndex + 1;
76
80
 
77
81
  if(index >= this.images.length) index = 0;
82
+
83
+
78
84
 
79
85
  this.targetDOM.src = this.images[index];
80
86
 
@@ -91,6 +97,8 @@
91
97
  stop() {
92
98
 
93
99
  window.clearInterval(this.intervalId);
100
+
101
+ this.intervalId = null;
94
102
 
95
103
  }
96
104