質問編集履歴
5
文章を少々修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
<!--1つのスライド-->
|
36
36
|
|
37
|
-
<div class="slide
|
37
|
+
<div class="product-slide">
|
38
38
|
|
39
39
|
<!--メインスライド-->
|
40
40
|
|
@@ -88,7 +88,7 @@
|
|
88
88
|
|
89
89
|
// 参考サイト:https://takblog.site/web/?p=144
|
90
90
|
|
91
|
-
var sliderBox = ".slide
|
91
|
+
var sliderBox = ".product-slide";
|
92
92
|
|
93
93
|
var slider = ".slide-main"; //スライダー
|
94
94
|
|
@@ -286,7 +286,7 @@
|
|
286
286
|
|
287
287
|
//【追加】スライドの数を数え、その数だけ個別のクラスを付与する
|
288
288
|
|
289
|
-
var classLength = $(".slide
|
289
|
+
var classLength = $(".product-slide").length;
|
290
290
|
|
291
291
|
var newClassMain, newClassThumbnail, slider, thumbnailItem;
|
292
292
|
|
4
クラス名を変更しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
<!--1つのスライド-->
|
36
36
|
|
37
|
-
<div class="
|
37
|
+
<div class="slide-box">
|
38
38
|
|
39
39
|
<!--メインスライド-->
|
40
40
|
|
@@ -84,11 +84,11 @@
|
|
84
84
|
|
85
85
|
$(function() {
|
86
86
|
|
87
|
-
// slide
|
87
|
+
// slide(サムネイルつき)---------------------
|
88
88
|
|
89
89
|
// 参考サイト:https://takblog.site/web/?p=144
|
90
90
|
|
91
|
-
var sliderBox = ".
|
91
|
+
var sliderBox = ".slide-box";
|
92
92
|
|
93
93
|
var slider = ".slide-main"; //スライダー
|
94
94
|
|
@@ -278,7 +278,7 @@
|
|
278
278
|
|
279
279
|
$(function() {
|
280
280
|
|
281
|
-
// slide
|
281
|
+
// slide(サムネイルつき)---------------------
|
282
282
|
|
283
283
|
// 参考サイト:https://takblog.site/web/?p=144
|
284
284
|
|
@@ -286,7 +286,7 @@
|
|
286
286
|
|
287
287
|
//【追加】スライドの数を数え、その数だけ個別のクラスを付与する
|
288
288
|
|
289
|
-
var classLength = $(".
|
289
|
+
var classLength = $(".slide-box").length;
|
290
290
|
|
291
291
|
var newClassMain, newClassThumbnail, slider, thumbnailItem;
|
292
292
|
|
3
文章を少々修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -246,7 +246,7 @@
|
|
246
246
|
|
247
247
|
そこで、javascriptの記述をスライダーの数だけ複製し、
|
248
248
|
|
249
|
-
スライダーとサムネイル画像を、
|
249
|
+
スライダーとサムネイル画像の部分を、
|
250
250
|
|
251
251
|
下記のように、変数と中に入れるクラス名を手動で変更したら、うまく起動しました。
|
252
252
|
|
2
コメントいただいてから試したことを追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -225,3 +225,193 @@
|
|
225
225
|
```
|
226
226
|
|
227
227
|
以上となります。お手数おかけしますが、よろしくお願いします。
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
### コメントいただいてから試してみたこと
|
234
|
+
|
235
|
+
yambejp様にご教示いただいた方法で
|
236
|
+
|
237
|
+
思うようにdata-indexの連番を付けることができました!
|
238
|
+
|
239
|
+
しかし、スライドとサムネイルのクラス名が同じだと、
|
240
|
+
|
241
|
+
複数増やした状態で、サムネイルをクリックしたら、同時にスライドが動いてしまうことに気付きました。。。
|
242
|
+
|
243
|
+
なので、スライドとサムネイルのクラス名を変更する方法で実装を考え直しています。
|
244
|
+
|
245
|
+
|
246
|
+
|
247
|
+
そこで、javascriptの記述をスライダーの数だけ複製し、
|
248
|
+
|
249
|
+
スライダーとサムネイル画像を、
|
250
|
+
|
251
|
+
下記のように、変数と中に入れるクラス名を手動で変更したら、うまく起動しました。
|
252
|
+
|
253
|
+
```javascript
|
254
|
+
|
255
|
+
var slider = ".main0"; //スライダー
|
256
|
+
|
257
|
+
var thumbnailItem = ".slide-thumbnail0 li"; //サムネイル画像
|
258
|
+
|
259
|
+
```
|
260
|
+
|
261
|
+
```javascript
|
262
|
+
|
263
|
+
var slider1 = ".main1"; //スライダー
|
264
|
+
|
265
|
+
var thumbnailItem1 = ".slide-thumbnail1 li"; //サムネイル画像
|
266
|
+
|
267
|
+
```
|
268
|
+
|
269
|
+
これをfor文を使って動的に変数とクラスの番号を変更したいのですが、うまくいきません。。。
|
270
|
+
|
271
|
+
下記のように、クラスの番号を動的に変更するようにしたのですが、
|
272
|
+
|
273
|
+
スライドが複数ある場合、
|
274
|
+
|
275
|
+
どのサムネイルをクリックしても、一番下のスライドが反応してしまいます。
|
276
|
+
|
277
|
+
```javascript
|
278
|
+
|
279
|
+
$(function() {
|
280
|
+
|
281
|
+
// slide商品紹介(サムネイルつき)---------------------
|
282
|
+
|
283
|
+
// 参考サイト:https://takblog.site/web/?p=144
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
//【追加】スライドの数を数え、その数だけ個別のクラスを付与する
|
288
|
+
|
289
|
+
var classLength = $(".product-slide").length;
|
290
|
+
|
291
|
+
var newClassMain, newClassThumbnail, slider, thumbnailItem;
|
292
|
+
|
293
|
+
//【追加】サムネイル画像アイテムに data-index でindex番号を付与
|
294
|
+
|
295
|
+
for (var i = 0; classLength > i; i++) {
|
296
|
+
|
297
|
+
newClassMain = "main" + i;
|
298
|
+
|
299
|
+
newClassThumbnail = "thumbnail" + i;
|
300
|
+
|
301
|
+
slider = "." + newClassMain;
|
302
|
+
|
303
|
+
thumbnailItem = "." + newClassThumbnail + " " + "li";
|
304
|
+
|
305
|
+
$(".slide-main")
|
306
|
+
|
307
|
+
.eq(i)
|
308
|
+
|
309
|
+
.addClass(newClassMain);
|
310
|
+
|
311
|
+
$(".slide-thumbnail")
|
312
|
+
|
313
|
+
.eq(i)
|
314
|
+
|
315
|
+
.addClass(newClassThumbnail);
|
316
|
+
|
317
|
+
//サムネイル画像アイテムに data-index でindex番号を付与
|
318
|
+
|
319
|
+
$(thumbnailItem).each(function() {
|
320
|
+
|
321
|
+
var index = $(thumbnailItem).index(this);
|
322
|
+
|
323
|
+
$(this).attr("data-index", index);
|
324
|
+
|
325
|
+
});
|
326
|
+
|
327
|
+
//スライダー初期化後、カレントのサムネイル画像にクラス「thumbnail-current」を付ける
|
328
|
+
|
329
|
+
//「slickスライダー作成」の前にこの記述は書いてください。
|
330
|
+
|
331
|
+
$(slider).on("init", function(slick) {
|
332
|
+
|
333
|
+
var index = $(".slide-item.slick-slide.slick-current").attr(
|
334
|
+
|
335
|
+
"data-slick-index"
|
336
|
+
|
337
|
+
);
|
338
|
+
|
339
|
+
$(thumbnailItem + '[data-index="' + index + '"]').addClass(
|
340
|
+
|
341
|
+
"thumbnail-current"
|
342
|
+
|
343
|
+
);
|
344
|
+
|
345
|
+
});
|
346
|
+
|
347
|
+
//slickスライダー初期化
|
348
|
+
|
349
|
+
$(slider).slick({
|
350
|
+
|
351
|
+
arrows: true,
|
352
|
+
|
353
|
+
dots: true,
|
354
|
+
|
355
|
+
fade: true,
|
356
|
+
|
357
|
+
infinite: false //これは必須
|
358
|
+
|
359
|
+
});
|
360
|
+
|
361
|
+
//サムネイル画像アイテムをクリックした時にスライダー切り替え
|
362
|
+
|
363
|
+
$(thumbnailItem).on("click", function() {
|
364
|
+
|
365
|
+
var index = $(this).attr("data-index");
|
366
|
+
|
367
|
+
$(slider).slick("slickGoTo", index, false);
|
368
|
+
|
369
|
+
});
|
370
|
+
|
371
|
+
//サムネイル画像のカレントを切り替え
|
372
|
+
|
373
|
+
$(slider).on("beforeChange", function(
|
374
|
+
|
375
|
+
event,
|
376
|
+
|
377
|
+
slick,
|
378
|
+
|
379
|
+
currentSlide,
|
380
|
+
|
381
|
+
nextSlide
|
382
|
+
|
383
|
+
) {
|
384
|
+
|
385
|
+
$(thumbnailItem).each(function() {
|
386
|
+
|
387
|
+
$(this).removeClass("thumbnail-current");
|
388
|
+
|
389
|
+
});
|
390
|
+
|
391
|
+
$(thumbnailItem + '[data-index="' + nextSlide + '"]').addClass(
|
392
|
+
|
393
|
+
"thumbnail-current"
|
394
|
+
|
395
|
+
);
|
396
|
+
|
397
|
+
});
|
398
|
+
|
399
|
+
}
|
400
|
+
|
401
|
+
}
|
402
|
+
|
403
|
+
```
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
そのため、変数名も変更する必要があると考えています。
|
408
|
+
|
409
|
+
しかし、slider[i],thumbnailItem[i] ではうまくいきませんでした。。
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
長文で申し訳ありません。
|
414
|
+
|
415
|
+
どうかお力をお借りできれば嬉しいです。
|
416
|
+
|
417
|
+
よろしくお願い申し上げます。
|
1
タグを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|