回答編集履歴

1

CSS・JSを含めて記載しなおしました。

2021/02/18 02:08

投稿

mai1210
mai1210

スコア272

test CHANGED
@@ -3,6 +3,10 @@
3
3
  プルフックはプルフックとして画面上部に入れ
4
4
 
5
5
  その下にカルーセルを配置、で良いのではないでしょうか?
6
+
7
+
8
+
9
+ 公式の実例を組み合わせただけですが、以下の内容でカルーセル、プルフック共に動きました。スワイプ操作が競合してしまう、というのも無さそうです。
6
10
 
7
11
 
8
12
 
@@ -20,26 +24,132 @@
20
24
 
21
25
 
22
26
 
23
-  <ons-carousel id="carousel">
27
+ <ons-carousel swipeable overscrollable auto-scroll fullscreen var="carousel">
24
28
 
25
-   <ons-carousel-item id="A">
29
+ <ons-carousel-item style="background-color: gray;">
26
30
 
27
-   test
31
+ <div class="item-label" id="A">A</div>
28
32
 
29
-   </ons-carousel-item>
33
+ </ons-carousel-item>
30
34
 
31
-   <ons-carousel-item id="B">
35
+ <ons-carousel-item style="background-color: #085078;">
32
36
 
33
-   test
37
+ <div class="item-label" id="B">B</div>
34
38
 
35
-   </ons-carousel-item>
39
+ </ons-carousel-item>
36
40
 
41
+ <ons-carousel-cover>
42
+
43
+ <div class="cover-label">Swipe left or right</div>
44
+
45
+ </ons-carousel-cover>
46
+
37
-  </ons-carousel>
47
+ </ons-carousel>
38
48
 
39
49
 
40
50
 
41
51
  </ons-page>
42
52
 
53
+ ```
54
+
55
+ ```css
56
+
57
+ ons-carousel-item {
58
+
59
+ display: table;
60
+
61
+ text-align: center;
62
+
63
+ }
43
64
 
44
65
 
66
+
67
+ .item-label {
68
+
69
+ display: table-cell;
70
+
71
+ vertical-align: middle;
72
+
73
+ color: white;
74
+
75
+ line-height: 1;
76
+
77
+ font-size: 48px;
78
+
79
+ font-weight: bold;
80
+
81
+ }
82
+
83
+
84
+
85
+ .cover-label {
86
+
87
+ text-align: center;
88
+
89
+ position: absolute;
90
+
91
+ left: 0px;
92
+
93
+ width: 100%;
94
+
95
+ bottom: 10px;
96
+
97
+ color: white;
98
+
99
+ }
100
+
45
101
  ```
102
+
103
+ ```JS
104
+
105
+ ons.ready(function() {
106
+
107
+ var pullHook = document.getElementById('pull-hook');
108
+
109
+
110
+
111
+ pullHook.addEventListener('changestate', function(event) {
112
+
113
+ var message = '';
114
+
115
+
116
+
117
+ switch (event.state) {
118
+
119
+ case 'initial':
120
+
121
+ message = 'Pull to refresh';
122
+
123
+ break;
124
+
125
+ case 'preaction':
126
+
127
+ message = 'Release';
128
+
129
+ break;
130
+
131
+ case 'action':
132
+
133
+ message = 'Loading...';
134
+
135
+ break;
136
+
137
+ }
138
+
139
+
140
+
141
+ pullHook.innerHTML = message;
142
+
143
+ });
144
+
145
+
146
+
147
+ pullHook.onAction = function(done) {
148
+
149
+ setTimeout(done, 1000);
150
+
151
+ };
152
+
153
+ });
154
+
155
+ ```