回答編集履歴

3

(タブ)クリックイベントについてコードを修正

2017/12/28 11:01

投稿

Tomak
Tomak

スコア1652

test CHANGED
@@ -7,6 +7,68 @@
7
7
 
8
8
 
9
9
  `Swiper`というのは、作成してあるタブごとにインスタンスを作成しなければなりません。タブ1できちんと動いているということなので、同じオプションで問題ないのであれば下記のようにします。別々のオプションが必要な場合は、別々にセレクターで指定してインスタンスを作成します。
10
+
11
+
12
+
13
+ 試してないので不具合があるかもしれませんが、ポイントとしては、タブがクリックされて、フェードイン完了時に`Swiper`インスタンスを作成すればよいと思います。
14
+
15
+
16
+
17
+ 1. タブクリック
18
+
19
+ 1. フェードイン
20
+
21
+ 1. Swiperインスタンス作成(フェードインが終わったら)
22
+
23
+
24
+
25
+ **※注意点**
26
+
27
+
28
+
29
+ - 初期タブは上記と関係なくSwiperインスタンスを作成します。
30
+
31
+ - 後で同じタブをクリックしたときに、作成済みインスタンスで実行できるので、インスタンスを配列などに入れて記憶しておきます。
32
+
33
+
34
+
35
+ ```js
36
+
37
+ (function($) {
38
+
39
+ $(document).ready(function() {
40
+
41
+ $('.tab_area:first').show();
42
+
43
+ $('.tab li:first').addClass('active');
44
+
45
+
46
+
47
+ //タブ切替
48
+
49
+ $('.tab li').click(function() {
50
+
51
+ $('.tab li').removeClass('active');
52
+
53
+ $(this).addClass('active');
54
+
55
+ $('.tab_area').hide();
56
+
57
+ //fadeIn()をインラインへ移動
58
+
59
+ return false;
60
+
61
+ });
62
+
63
+ });
64
+
65
+ })(jQuery);
66
+
67
+ ```
68
+
69
+
70
+
71
+ インラインのJavaScriptを下記のようにします。
10
72
 
11
73
 
12
74
 
@@ -56,15 +118,41 @@
56
118
 
57
119
 
58
120
 
59
- //#tab1
121
+ var swipers = [];
60
122
 
61
- new Swiper('#tab1 .swiper-container', options);
62
123
 
63
- //#tab2
64
124
 
65
- new Swiper('#tab2 .swiper-container', options);
125
+ //タブ切替
66
126
 
127
+ $('.tab li').click(function() {
128
+
129
+ //タブのフェードインが完了したら、Swiperを動作させる
130
+
131
+ $($(this).find('a').attr('href')).fadeIn(400, 'swing', function() {
132
+
133
+ var currentId = $(this).attr('id');
134
+
135
+
136
+
67
- //...
137
+ //#tabX Swiper作成
138
+
139
+ if ($.type(swipers[currentId]) !== 'object') {
140
+
141
+ swipers[currentId] = new Swiper('#'+ currentId +' .swiper-container', options);
142
+
143
+ }
144
+
145
+ });
146
+
147
+ return false;
148
+
149
+ });
150
+
151
+
152
+
153
+ //#tab1(初期タブ) Swiper作成
154
+
155
+ swipers['tab1'] = new Swiper('#tab1 .swiper-container', options);
68
156
 
69
157
  ```
70
158
 

2

タイプミス編集(詩的→指摘)

2017/12/28 11:01

投稿

Tomak
Tomak

スコア1652

test CHANGED
@@ -1,4 +1,4 @@
1
- 質問文をちゃんと読んでいなかったのと、最初の回答がコメントにあるように関係ない詩的でしたので、回答を全面的に編集しました。すみませんご指摘ありがとうございます。
1
+ 質問文をちゃんと読んでいなかったのと、最初の回答がコメントにあるように関係ない指摘でしたので、回答を全面的に編集しました。すみませんご指摘ありがとうございます。
2
2
 
3
3
 
4
4
 

1

Swiperインスタンスをタブごとに作成

2017/12/28 08:23

投稿

Tomak
Tomak

スコア1652

test CHANGED
@@ -1,18 +1,4 @@
1
- JavaScriptコードはPHPて一番カンマ`,`を入れことがません。カンマについては、PHPはかな特殊で他の言語でもJavaScriptの仕様一般的です。
1
+ 質問文をちゃん読んでいなかたのと、初の回答がコメントように関係ない詩的したので、回答を全面的に編集しした。すみません。ご指摘ありがとうございます。
2
-
3
-
4
-
5
- 続きがあるときは、カンマありで、最後はカンマなしです。
6
-
7
-
8
-
9
- ```js
10
-
11
- var obj1 = { prop1 : val1 }; //カンマなし
12
-
13
- var obj2 = { prop1 : val1, prop2 : val2 }; //区切りだけカンマあり
14
-
15
- ```
16
2
 
17
3
 
18
4
 
@@ -20,13 +6,13 @@
20
6
 
21
7
 
22
8
 
23
- あと、JavaScriptエラー開発者ツール(F12)のコソールどに表示さるのみてくださ。エラーが不可解場足は質掲載てみてくださいまた、使用しているブラウザ種類やバージョンも重要な情報です。
9
+ `Swiper`というのは、作成してあるタブごとにイスタンスを作成しばなりません。タブ1きちんと動いているということので、同じオプションで題ないのであれば下記のようにします別々オプションが必要な場合は、別々にセレクター指定してインスタンスを作成します。
24
10
 
25
11
 
26
12
 
27
13
  ```js
28
14
 
29
- var mySwiper = new Swiper ('.swiper-container', {
15
+ var options = {
30
16
 
31
17
  // Optional parameters
32
18
 
@@ -66,6 +52,24 @@
66
52
 
67
53
  }
68
54
 
69
- });
55
+ };
56
+
57
+
58
+
59
+ //#tab1
60
+
61
+ new Swiper('#tab1 .swiper-container', options);
62
+
63
+ //#tab2
64
+
65
+ new Swiper('#tab2 .swiper-container', options);
66
+
67
+ //...
70
68
 
71
69
  ```
70
+
71
+
72
+
73
+ 下記でもサイトにサンプルがあるので、参考になるかと思います。(JavaScriptのソースは`/js/main.js`です)
74
+
75
+ [http://idangero.us/swiper/demos/](http://idangero.us/swiper/demos/)