回答編集履歴

3

サンプルコード追記

2019/07/11 05:21

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -156,7 +156,7 @@
156
156
 
157
157
  function zoom() {
158
158
 
159
- timerId = setInterval(function(){change()},1000);
159
+ timerId = setInterval('change()',1000);
160
160
 
161
161
  }
162
162
 

2

修正

2019/07/11 05:21

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -135,3 +135,51 @@
135
135
 
136
136
 
137
137
  この場合、IDはなくても良いですね。
138
+
139
+
140
+
141
+ # サンプルコード
142
+
143
+
144
+
145
+ 提示のものより画像は少ないですし名前も変えてありますが(あとインターバルの秒数も)
146
+
147
+ こんな感じでもできます。
148
+
149
+ ```js
150
+
151
+ var num = [1, 2, 3, 4];
152
+
153
+ var timerId = null;
154
+
155
+
156
+
157
+ function zoom() {
158
+
159
+ timerId = setInterval(function(){change()},1000);
160
+
161
+ }
162
+
163
+
164
+
165
+ function change(i) {
166
+
167
+ for(var i of num) {
168
+
169
+ w = Number(document.getElementById('p' + i).width);
170
+
171
+ if(w >= 200){
172
+
173
+ clearInterval(timerId);
174
+
175
+ break;
176
+
177
+ }
178
+
179
+ document.getElementById('p' + i).setAttribute('width', w+10);
180
+
181
+ }
182
+
183
+ }
184
+
185
+ ```

1

修正

2019/07/11 05:19

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -109,3 +109,29 @@
109
109
 
110
110
 
111
111
  ヒントにやってみてください。
112
+
113
+
114
+
115
+ ワンアップ
116
+
117
+ ----
118
+
119
+
120
+
121
+ 現在の作りだと「画像が増えると配列にも値を追加する」という必要が出てきます。
122
+
123
+ もう少し効率的に作ることができます。
124
+
125
+ 「JavaScriptで配列で情報(今回はimgタグ)を取得する」です。
126
+
127
+
128
+
129
+ HTMLの構成がどうなっているか分かりませんが、対象ではない画像が画面内に他にもあるようでしたら
130
+
131
+ 画像にclassをつけて[getElementsByClassName()](https://developer.mozilla.org/ja/docs/Web/API/Document/getElementsByClassName)でも良いですし、画面内に対象の画像がないのでしたらimgタグ直指定で[getElementsByTagName()](https://developer.mozilla.org/ja/docs/Web/API/Document/getElementsByTagName)でも良いでしょう。
132
+
133
+ ※[querySelectorAll()](https://developer.mozilla.org/ja/docs/Web/API/Document/querySelectorAll)などもあります
134
+
135
+
136
+
137
+ この場合、IDはなくても良いですね。