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

質問編集履歴

3

修正

2019/02/22 06:28

投稿

agepan
agepan

スコア66

title CHANGED
File without changes
body CHANGED
@@ -8,8 +8,10 @@
8
8
 
9
9
  次に[スクリプト](https://github.com/AshesOfOwls/jquery.shapeshift/blob/master/core/jquery.shapeshift.js)を覗いてみましたが、どこの部分がアイテムのクリックを司っているのか分かりません。
10
10
 
11
+ ・長押し(仮に1秒)されたらアイテムが移動されるようにしたい
11
- 上記スクリプトで「アイテムがクリックされたら移動処理」を行っている箇所、またその点を「長押し(仮に0.3秒)れたら移動処理」に書き換えられそうか否か分かる方がらっしゃいましたらご教授頂けますと幸いです。
12
+ ・長押している間にカーソル or 指を動かした場合は画面スクロールとみなし、アイテム移動させな
12
13
 
14
+ 上記のように書き換えられそうか否か分かる方がいらっしゃいましたらご教授頂けますと幸いです。
13
15
  一応実装していたHTMLを下記に掲載しておきます(上記デモページとあまり差はありません)。
14
16
  よろしくお願いいたします。
15
17
 

2

修正

2019/02/22 06:28

投稿

agepan
agepan

スコア66

title CHANGED
File without changes
body CHANGED
@@ -93,7 +93,7 @@
93
93
  ```
94
94
  ### 追記
95
95
  ---
96
- shapeshift.jsの418〜443行目に、それらしいコードがありました(下記)。
96
+ [スクリプト](https://github.com/AshesOfOwls/jquery.shapeshift/blob/master/core/jquery.shapeshift.js)の418〜443行目に、それらしいコードがありました(下記)。
97
97
  jQuery UIのstart、drag、stopを用いているようです。
98
98
  startの部分が、長押しで実行されるようになれば良さそうです。
99
99
 

1

追記

2019/02/22 06:19

投稿

agepan
agepan

スコア66

title CHANGED
File without changes
body CHANGED
@@ -90,4 +90,41 @@
90
90
  enableTrash: true
91
91
  });
92
92
 
93
+ ```
94
+ ### 追記
95
+ ---
96
+ shapeshift.jsの418〜443行目に、それらしいコードがありました(下記)。
97
+ jQuery UIのstart、drag、stopを用いているようです。
98
+ startの部分が、長押しで実行されるようになれば良さそうです。
99
+
100
+ ```JavaScript
101
+ start: function(e, ui) {
102
+ console.log('ドラッグ開始');
103
+ var selected_tag;
104
+ _this.globals.dragging = true;
105
+ $selected = $(e.target);
106
+ if (drag_clone) {
107
+ $clone = $selected.clone(false, false).insertBefore($selected).addClass(clone_class);
108
+ }
109
+ $selected.addClass(dragged_class);
110
+ selected_tag = $selected.prop("tagName");
111
+ $placeholder = $("<" + selected_tag + " class='" + placeholder_class + "' style='height: " + ($selected.height()) + "px; width: " + ($selected.width()) + "px'></" + selected_tag + ">");
112
+ $selected.parent().addClass(original_container_class).addClass(current_container_class);
113
+ selected_offset_y = $selected.outerHeight() / 2;
114
+ return selected_offset_x = $selected.outerWidth() / 2;
115
+ },
116
+ drag: function(e, ui) {
117
+ console.log('ドラッグ中');
118
+ if (!drag_timeout && !(drag_clone && delete_clone && $("." + current_container_class)[0] === $("." + original_container_class)[0])) {
119
+ $placeholder.remove().appendTo("." + current_container_class);
120
+ $("." + current_container_class).trigger("ss-setTargetPosition");
121
+ drag_timeout = true;
122
+ window.setTimeout((function() {
123
+ return drag_timeout = false;
124
+ }), drag_rate);
125
+ }
126
+ ui.position.left = e.pageX - $selected.parent().offset().left - selected_offset_x;
127
+ return ui.position.top = e.pageY - $selected.parent().offset().top - selected_offset_y;
128
+ },
129
+
93
130
  ```