回答編集履歴

1

追記

2019/04/25 16:32

投稿

NozomuIkuta
NozomuIkuta

スコア1260

test CHANGED
@@ -203,3 +203,93 @@
203
203
 
204
204
 
205
205
  もちろん、`createScene(options)`のように、引数をひとつのオブジェクトにして、関数の中で`TweenMax.staggerFromTo(options.selector)`と展開してもいいです。引数で指定したい変数が増えてきたらオブジェクトにした方がいいと思います。
206
+
207
+
208
+
209
+ ---
210
+
211
+
212
+
213
+ **2019/04/26 追記**
214
+
215
+
216
+
217
+ ScrollMagicの`triggerElement`はCSSセレクタではなくHTML要素(Element)そのものを指定することができます。また、`TweenMax.staggerFromTo()`の第1引数も、CSSセレクタではなく、HTML要素(Element)の配列を指定することができます。
218
+
219
+
220
+
221
+ それぞれに別々のクラスを付与するのではない場合、特定のクラスがついている要素を取得して反復処理をすればいいです。
222
+
223
+
224
+
225
+ 以下、jQueryを使用した場合の参考です。
226
+
227
+
228
+
229
+ ```JavaScript
230
+
231
+ var controller = new ScrollMagic();
232
+
233
+
234
+
235
+ function createScene(element) {
236
+
237
+ var tween = TweenMax.staggerFromTo([ element ], 1, {
238
+
239
+ opacity: 0,
240
+
241
+ y: 35
242
+
243
+ }, {
244
+
245
+ opacity: 1,
246
+
247
+ y: 0
248
+
249
+ }, 0.2);
250
+
251
+
252
+
253
+ var scene = new ScrollScene({
254
+
255
+ triggerElement: element,
256
+
257
+ reverse: false
258
+
259
+ })
260
+
261
+ .setTween(tween)
262
+
263
+ .addTo(controller);
264
+
265
+
266
+
267
+ return scene; // 一応、処理した値を取得できるようにreturnしています
268
+
269
+ }
270
+
271
+
272
+
273
+ // 特定のCSSクラスを持つ要素のjQueryオブジェクトを取得
274
+
275
+ var $targets = $('.move');
276
+
277
+
278
+
279
+ // jQueryの`each()`メソッドで、要素一つ一つを処理
280
+
281
+ $targets.each(function() {
282
+
283
+ // このfunctionの中で`this`は'move'クラスを持つ要素です
284
+
285
+ createScene(this);
286
+
287
+ });
288
+
289
+ ```
290
+
291
+
292
+
293
+ ところで、複数の要素を連続してアニメーションさせるのでなく、それぞれ独立して動かすのであれば、`TweenMax.staggerFromTo()`ではなくて、`TweenMax.fromTo()`でよいのではないですか?
294
+
295
+ (注:`TweenMax.fromTo()`の場合は、要素の配列ではなく、要素を指定します)