teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

解決方法を

2020/07/07 03:19

投稿

takaraism
takaraism

スコア1

title CHANGED
File without changes
body CHANGED
@@ -80,4 +80,11 @@
80
80
 
81
81
 
82
82
  同様の内容で解決した方は、何卒お知恵をお借り出来たら幸いです。
83
- よろしくお願いいたします。
83
+ よろしくお願いいたします。
84
+
85
+
86
+
87
+ **【解決しました』
88
+
89
+ この現象はjqueryのバージョンは「1.11.x」だと起きるようです。
90
+ 試しに「1.12.0」を使ってみたところ、空白がなくなりました。

1

起きている現象と希望を明確にしました

2020/07/07 03:18

投稿

takaraism
takaraism

スコア1

title CHANGED
@@ -1,1 +1,1 @@
1
- [Slick]responsiveモードにするとスライドの0個目に空白できる
1
+ [Slick]オプションのresponsiveを設定するとスライドの0個目にdata-slick-index="0"div自動的に生成されてしまう
body CHANGED
@@ -1,56 +1,10 @@
1
- ### 発生している問題
1
+ ### 状況
2
2
 
3
- Slickスライダーで8枚のコンテンツ組み込み、その際responsiveモードを設定したところ、
3
+ Slickスライダーで8枚のコンテンツ組み込んでいます。
4
+ 使用しているバージョンは、slick-1.8.1です。
4
- responsive画面サイズだけ先頭に謎の空白が発生してしまいます。
5
+ htmlで以下ような組み方をしてスライダーを作っています。
5
- 検索するなどして探したのですが解決策が見つからないので
6
- こちらに書き込ませていただきました。
7
6
 
8
- ### 稼働状況
9
- ・PC版は全く問題ありません。動いていますし、空白もできません。
10
- ・responsiveの方も動くことは動きますが、1個目の前に空白ができます
11
- ・1個目の前にできた空白はこのようなソースが入っています
12
7
  ```
13
- <div class="slick-track slick-slide slick-current slick-center" data-slick-index="0" aria-hidden="true" tabindex="0" style="width: 172px;">
14
- <div class="slick-list"></div>
15
- </div>
16
- ```
17
- なぜ、ここにclass="slick-list"が生成されるかがわかりません。
18
-
19
-
20
-
21
-
22
- ### 現在のソース・設定状況
23
-
24
-
25
- ```
26
- ▼Slicl設定
27
-
28
- <script>
29
-  $('.slider').slick({
30
- arrows: true,
31
- prevArrow:'<div class="prev arrow">PREV</div>',
32
- nextArrow:'<div class="next arrow">NEXT</div>',
33
- slidesToShow:4,
34
- dot:false,
35
- autoplay:false,
36
- infinite:false,
37
- responsive: [
38
- {
39
- breakpoint: 559,
40
- settings: {
41
- centerMode:true,
42
- centerPadding:'25%',
43
- slidesToShow:1
44
- }
45
- }
46
- ]
47
-  });
48
- </script>
49
-
50
- ```
51
-
52
-
53
- ```
54
8
  ▼HTML
55
9
 
56
10
  <div class="wraps clearfix slider">
@@ -62,19 +16,28 @@
62
16
  <h3>タイトル</h3>
63
17
  </a>
64
18
   </div>
19
+  ※これが合計8個並ぶ
65
20
 
66
-  ※これが合計8個
67
21
  </div>
68
22
 
69
23
  ```
70
24
 
25
+ こちら4枚表示の設定を行ったうえでスライドの動作が確認できました。
26
+ そして、オプションにあるresponsiveを設定し設定したブレイクポイントで1枚表示にしたところ、
27
+ 4枚表示の際は1枚目のスライダーに「data-slick-index="0"」が設定されていたのに
28
+ responsive設定のスライダーでは、1枚目の前に空白のdivが自動的に生成され、
29
+ それに「data-slick-index="0"」が付けられててしまい、1枚目の前に空白のスライダーが出てきてしまいます。
30
+ 生成される謎の空白はこのようなものです、。
71
31
 
32
+ ```
33
+ <div class="slick-track slick-slide slick-current slick-center" data-slick-index="0" aria-hidden="true" tabindex="0" style="width: 172px;">
34
+ <div class="slick-list"></div>
35
+ </div>
72
36
 
37
+ この自動生成された空白を消すことはできないでしょうか。
73
38
 
74
- ### テストした内容
75
39
 
76
- Slickの設定部分をresponsive:を外してみてテストしたら、それは問題なく動きました。
77
- responsive:を付けると、responsive:内に設定した内容の時に空白ができてしまいます。
40
+ ### slickの設定
78
41
 
79
42
  ```
80
43
  <script>
@@ -82,18 +45,39 @@
82
45
  arrows: true,
83
46
  prevArrow:'<div class="prev arrow">PREV</div>',
84
47
  nextArrow:'<div class="next arrow">NEXT</div>',
48
+ slidesToShow:4,
85
49
  dot:false,
86
50
  autoplay:false,
87
51
  infinite:false,
52
+ responsive: [
53
+ {
54
+ breakpoint: 559,
55
+ settings: {
88
56
  centerMode:true,
89
57
  centerPadding:'25%',
90
- slidesToShow:1
58
+ slidesToShow:1
91
-
59
+ }
60
+ }
61
+ ]
92
62
   });
93
63
  </script>
64
+
94
65
  ```
95
66
 
96
67
 
68
+ ### テストした内容
97
69
 
70
+ ・CSSで強制的に空白をdisplay:noneで非表示
71
+  →消えるが、slickとしては1枚あったことを認識しているため、今度は一番最後の8枚目の後ろに空白ができた
72
+ ・responsiveの設定を基本の設定に書いてみる+responsiveの設定を外す
73
+  →PCでもレスポンシブサイズでも問題なかった。
74
+
75
+
76
+ ### 解決方法推測+希望
77
+
78
+ 上記テストから、responsiveの時に自動的に作られる謎のボックスが原因だと思うので、
79
+ これを作らないようにさせたいのですが、どのようにしたらよろしいでしょうか。
80
+
81
+
98
82
  同様の内容で解決した方は、何卒お知恵をお借り出来たら幸いです。
99
83
  よろしくお願いいたします。