質問編集履歴

1

脱字

2019/08/09 07:22

投稿

Mikewazousuki
Mikewazousuki

スコア8

test CHANGED
@@ -1 +1 @@
1
- jQueryのcss()メソッドが2回目以降、効かない
1
+ JQueryのanimateメソッドが効かない
test CHANGED
@@ -1,22 +1,10 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- JQueryを用いてSwiped.js というプラグインをカスタマイズしています。選択したものを右にスワイプするで指定した要素が消えるプラグインです。スワイプが終わったあとの残った要素(まだスワイプされずに残ってい要素)をcss()メソッドを使って、スムースに表示させるようにプラグインをカスタマイズしてみした
3
+ マホやブレット端末でスワイプすると、選択された要素が削除されるコードをって
4
4
 
5
+ コード自体は有効なのですが、アニメーションが効きません、要素が削除されたあと、ゆっくりと残りの要素が上に詰まっていくようにしたいです。
5
6
 
6
-
7
-
8
-
9
- ### 前提
10
-
11
- スワイプしたブロッック要素の数*ブロック要素の高さを、計算して、top位置から計算した分下がった位置から、画面の上部に向かっスクロール戻っていくアニメショーンを作ってみした
7
+ 解決方法が分る方いゃいましたら、教えていただきたいです。よろしお願いし
12
-
13
-
14
-
15
-
16
-
17
- ### ヘディングのテキスト
18
-
19
- 1回目のイベントは正常に切り替えが動作したが(Transformm,transitionが効いた)、2回目以降はアニメーションが効かずにカクッと表示されてしまいます。何か解決法はございますでしょうか?
20
8
 
21
9
 
22
10
 
@@ -24,260 +12,46 @@
24
12
 
25
13
  ### 該当のソースコード
26
14
 
27
- ```
15
+ ```ここに言語を入力
28
16
 
29
- var amount = $(".serve-list").length;
17
+ Swiped.prototype.destroy = function(isRemoveNode) {
30
18
 
31
- function quit_swipe_at_once_mode()
19
+ var id = this.id;
32
-
33
- {
34
-
35
- if (!g_swipe_at_once_mode) return;
36
20
 
37
21
 
38
22
 
39
- $("#js-index-menu-list-outer").find(".js-menu-item").each( function() {
23
+ Swiped._elems.forEach(function(elem, i) {
40
24
 
41
- $(this).removeClass("inactive");
25
+ if (elem.id === id) {
42
26
 
43
- $(this).removeClass("js-swipe-at-once");
27
+ Swiped._elems.splice(i,0);
44
28
 
45
- $(this).addClass("js-swipe-to-delete");
29
+ $(this).animate({
46
30
 
47
31
 
48
32
 
33
+ },3000);
49
34
 
35
+ }
50
36
 
51
- $(".js-menu-item").addClass("cnt");
52
-
53
- var cnt = $(".cnt").length;
54
-
55
- var currentlength = amount-cnt;
56
-
57
- var height1 =currentlength*40;
58
-
59
- console.log(height1);
60
-
61
- $("#js-index-menu-list-outer").css({'position':'relative','top':'' + height1 + 'px'});
62
-
63
- $("#js-index-menu-list-outer").css({'transform':'translateY(-' + height1 + 'px)','transition':'3s'});
64
-
65
- console.log('ほーほけきょ');
66
-
67
- });
37
+ });
68
38
 
69
39
 
70
40
 
71
- $("body").css("background-color", "#FFF");
41
+ if (isRemoveNode) {
72
42
 
73
- $("body").css("transition", "1s");
43
+ // 2019/06 added by pretacou
74
44
 
45
+ // this.elem.parentNode が null の場合があるので対策
75
46
 
47
+ if (this.elem && this.elem.parentNode) {
76
48
 
77
- g_swipe_at_once_mode = false;
49
+ this.elem.parentNode.removeChild(this.elem);
78
50
 
79
- }
51
+ }
80
52
 
53
+ }
81
54
 
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
- // メニューの真ん中クリック
90
-
91
- $("#js-index-menu-list-outer").on("click", ".js-swipe-at-once-hdl", function(e) {
92
-
93
- if (!g_swipe_at_once_mode) {
94
-
95
- // 一括メニューモードに入る
96
-
97
- var $tgt = $(this).closest(".js-menu-item");
98
-
99
- var tgt_id = $tgt.attr("id");
100
-
101
-
102
-
103
- g_swipe_at_once_mode = true;
104
-
105
-
106
-
107
- $("body").css("background", "#666");
108
-
109
- $tgt.addClass("js-swipe-at-once");
110
-
111
-
112
-
113
- $("#js-index-menu-list-outer").find(".js-menu-item").each( function() {
114
-
115
- if ($(this).attr("id") != tgt_id) {
116
-
117
- $(this).addClass("inactive");
118
-
119
- $(this).removeClass("js-swipe-at-once");
120
-
121
- }
122
-
123
- });
55
+ };
124
-
125
- } else {
126
-
127
- // 個別の有効性切替え
128
-
129
- var $tgt = $(this).closest(".js-menu-item");
130
-
131
- if ($tgt.hasClass("inactive")) {
132
-
133
- $tgt.removeClass("inactive");
134
-
135
- } else {
136
-
137
- $tgt.addClass("inactive");
138
-
139
- }
140
-
141
- if ($tgt.hasClass("js-swipe-at-once")) {
142
-
143
- $tgt.removeClass("js-swipe-at-once");
144
-
145
- } else {
146
-
147
- $tgt.addClass("js-swipe-at-once");
148
-
149
- }
150
-
151
- }
152
-
153
-
154
-
155
- // 選択が一つもなくなったらモードを抜ける
156
-
157
- var selected = false;
158
-
159
- $("#js-index-menu-list-outer").find(".js-menu-item").each( function() {
160
-
161
- if ($(this).hasClass("js-swipe-at-once")) {
162
-
163
- selected = true;
164
-
165
- }
166
-
167
- });
168
-
169
- if (!selected) {
170
-
171
- quit_swipe_at_once_mode();
172
-
173
- }
174
-
175
- });
176
-
177
-
178
56
 
179
57
  ```
180
-
181
-
182
-
183
-
184
-
185
- ### 該当のソースコード(HTML)
186
-
187
- ```
188
-
189
- <body>
190
-
191
-
192
-
193
- <div class="lo-wrapper-outer wrapper-outer all" id="ptop" ontouchstart="">
194
-
195
-
196
-
197
- <main id="js-main">
198
-
199
- <div class="lo-main-outer main-outer" id="js-main-outer">
200
-
201
-
202
-
203
- <div id="js-index-menu-list-outer" class="not-provided" style="display: block;">
204
-
205
- <div class="section-ptn-a skin-table js-swipe-to-delete js-menu-item" data-index="01" id="order01">
206
-
207
- <div class="serve-list">
208
-
209
- <div class="js-swipe-at-once-hdl">メニューメニューメニューメニューメニュー01</div>
210
-
211
- </div>
212
-
213
- </div>
214
-
215
- <div class="section-ptn-a skin-table js-swipe-to-delete js-menu-item" data-index="02" id="order02">
216
-
217
- <div class="serve-list">
218
-
219
- <div class="js-swipe-at-once-hdl">メニューメニューメニューメニューメニュー02</div>
220
-
221
- </div>
222
-
223
- </div>
224
-
225
- <div class="section-ptn-a skin-table js-swipe-to-delete js-menu-item" data-index="03" id="order03">
226
-
227
- <div class="serve-list">
228
-
229
- <div class="js-swipe-at-once-hdl">メニューメニューメニューメニューメニュー03</div>
230
-
231
- </div>
232
-
233
- </div>
234
-
235
- <div class="section-ptn-a skin-table js-swipe-to-delete js-menu-item" data-index="04" id="order04">
236
-
237
- <div class="serve-list">
238
-
239
- <div class="js-swipe-at-once-hdl">メニューメニューメニューメニューメニュー04</div>
240
-
241
- </div>
242
-
243
- </div>
244
-
245
- <div class="section-ptn-a skin-table js-swipe-to-delete js-menu-item" data-index="05" id="order05">
246
-
247
- <div class="serve-list">
248
-
249
- <div class="js-swipe-at-once-hdl">メニューメニューメニューメニューメニュー05</div>
250
-
251
- </div>
252
-
253
- </div>
254
-
255
- <div class="section-ptn-a skin-table js-swipe-to-delete js-menu-item" data-index="06" id="order06">
256
-
257
- <div class="serve-list">
258
-
259
- <div class="js-swipe-at-once-hdl">メニューメニューメニューメニューメニュー06</div>
260
-
261
- </div>
262
-
263
- </div>
264
-
265
-
266
-
267
- </div>
268
-
269
-
270
-
271
- <div><input type="button" value="一括スワイプモードを抜ける" id="js-escape-swipe-at-once-mode">
272
-
273
- </div>
274
-
275
-
276
-
277
- </div><!--/lo-main-outer-->
278
-
279
- </main>
280
-
281
-
282
-
283
- ```