質問編集履歴

3

修正

2019/02/22 06:28

投稿

agepan
agepan

スコア66

test CHANGED
File without changes
test CHANGED
@@ -18,9 +18,13 @@
18
18
 
19
19
 
20
20
 
21
+ ・長押し(仮に1秒)されたらアイテムが移動されるようにしたい
22
+
23
+ ・長押ししている間にカーソル or 指を動かした場合は画面スクロールとみなし、アイテム移動させない
24
+
25
+
26
+
21
- もし上記スクリプトで「アイテムがクリックされたら移動処理」を行っている箇所、またそ点を「長押し(仮0.3秒)されたら移動処理」に書き換えられそうか否か分かる方がいらっしゃいましたらご教授頂けますと幸いです。
27
+ 上記のように書き換えられそうか否か分かる方がいらっしゃいましたらご教授頂けますと幸いです。
22
-
23
-
24
28
 
25
29
  一応実装していたHTMLを下記に掲載しておきます(上記デモページとあまり差はありません)。
26
30
 

2

修正

2019/02/22 06:28

投稿

agepan
agepan

スコア66

test CHANGED
File without changes
test CHANGED
@@ -188,7 +188,7 @@
188
188
 
189
189
  ---
190
190
 
191
- shapeshift.jsの418〜443行目に、それらしいコードがありました(下記)。
191
+ [スクリプト](https://github.com/AshesOfOwls/jquery.shapeshift/blob/master/core/jquery.shapeshift.js)の418〜443行目に、それらしいコードがありました(下記)。
192
192
 
193
193
  jQuery UIのstart、drag、stopを用いているようです。
194
194
 

1

追記

2019/02/22 06:19

投稿

agepan
agepan

スコア66

test CHANGED
File without changes
test CHANGED
@@ -183,3 +183,77 @@
183
183
 
184
184
 
185
185
  ```
186
+
187
+ ### 追記
188
+
189
+ ---
190
+
191
+ shapeshift.jsの418〜443行目に、それらしいコードがありました(下記)。
192
+
193
+ jQuery UIのstart、drag、stopを用いているようです。
194
+
195
+ startの部分が、長押しで実行されるようになれば良さそうです。
196
+
197
+
198
+
199
+ ```JavaScript
200
+
201
+ start: function(e, ui) {
202
+
203
+ console.log('ドラッグ開始');
204
+
205
+ var selected_tag;
206
+
207
+ _this.globals.dragging = true;
208
+
209
+ $selected = $(e.target);
210
+
211
+ if (drag_clone) {
212
+
213
+ $clone = $selected.clone(false, false).insertBefore($selected).addClass(clone_class);
214
+
215
+ }
216
+
217
+ $selected.addClass(dragged_class);
218
+
219
+ selected_tag = $selected.prop("tagName");
220
+
221
+ $placeholder = $("<" + selected_tag + " class='" + placeholder_class + "' style='height: " + ($selected.height()) + "px; width: " + ($selected.width()) + "px'></" + selected_tag + ">");
222
+
223
+ $selected.parent().addClass(original_container_class).addClass(current_container_class);
224
+
225
+ selected_offset_y = $selected.outerHeight() / 2;
226
+
227
+ return selected_offset_x = $selected.outerWidth() / 2;
228
+
229
+ },
230
+
231
+ drag: function(e, ui) {
232
+
233
+ console.log('ドラッグ中');
234
+
235
+ if (!drag_timeout && !(drag_clone && delete_clone && $("." + current_container_class)[0] === $("." + original_container_class)[0])) {
236
+
237
+ $placeholder.remove().appendTo("." + current_container_class);
238
+
239
+ $("." + current_container_class).trigger("ss-setTargetPosition");
240
+
241
+ drag_timeout = true;
242
+
243
+ window.setTimeout((function() {
244
+
245
+ return drag_timeout = false;
246
+
247
+ }), drag_rate);
248
+
249
+ }
250
+
251
+ ui.position.left = e.pageX - $selected.parent().offset().left - selected_offset_x;
252
+
253
+ return ui.position.top = e.pageY - $selected.parent().offset().top - selected_offset_y;
254
+
255
+ },
256
+
257
+
258
+
259
+ ```