1 /*!
2 * jQuery UI Touch Punch 0.2.2
3 /*!
4 * 著作権 2011, Dave Furfero
5 * MIT または GPL Version 2 ライセンスでライセンスされます。
6 * *
7 * 依存します。
8 * jquery.ui.widget.js
9 * jquery.ui.mouse.js
10 */
11 (function ($) {)
12 // タッチサポートを検出します。
13 // タッチサポートを検出
14 $.support.touch = 'ontouchend' in document;
15 // タッチ非対応のブラウザを無視します。
16 // タッチ非対応のブラウザを無視
17 if (!$.support.touch) { // タッチ非対応のブラウザを無視します。
18 return;
19 }
20
21 var mouseProto = $.ui.mouse.prototype, 22 _mouseInit = mouseProto.
22 _mouseInit = mouseProto._mouseInit、
23 touchHandled.
24
25 /**
26 * 対応するタッチイベントに基づいてマウスイベントをシミュレートします。
27 * @param {Object} event タッチイベント。
28 * @param {String} simulatedType 対応するマウスイベント
29 @param {String} simulatedType
30 function simulateMouseEvent (event, simulatedType) { * パラム {String} simulatedType。
31 function simulateMouseEvent
32 // マルチタッチイベントを無視
33 if (event.originalEvent.touches.length > 1) { // マルチタッチイベントを無視します。
34 return; }.
35 }
36 // if (event.originalEvent.touches.length > 1) { 34 return; 35 }.
37 event.preventDefault(); event.originalEvent.touches.length > 1 { return; 36 }.
38 var touch = event.originalEvent.changedTouches[0]; }.
39 var touch = event.originalEvent.changedTouches[0]、
40 simulatedEvent = document.createEvent('MouseEvents');
41 // シミュレートされたイベントを初期化します。
42 // タッチイベントの座標を使用して、シミュレートされたマウスイベントを初期化します。
43 simulatedEvent.initMouseEvent(
44 simulatedType, // タイプ
45 true, // バブル
46 true, // キャンセル可能
47 window, // ビュー
48 1, // 詳細
49 touch.screenX, // スクリーンX
50 touch.screenY, // screenY
51 touch.clientX, // クライアントX
52 touch.clientY, // クライアントY
53 false, // ctrlキー
54 false, // altKey
55 false, // shiftKey
56 false, // metaKey
57 0, // ボタン
58 null // relatedTarget
59 ); }
60 // 模擬イベントをターゲット要素にディスパッチします。
61 // シミュレートしたイベントをターゲット要素にディスパッチします。
62 event.target.dispatchEvent(simulatedEvent);
63 }
63 }
65 /**
66 * jQuery UI ウィジェットのタッチ開始イベントを処理します。
67 * @param {Object} event ウィジェット要素のタッチ開始イベント
68 */
69 mouseProto._touchStart = function (event) { 70
70 var self = this; var mouseProto._touchStart = function (event) {.
71 var self = this;
71 var self = this; } // イベントを無視します。
73 // 他のウィジェットが既に処理されている場合、イベントを無視します。
74 if (touchHandled || !self._mouseCapture(event.originalEvent.changedTouches[0])) { if (touchHandled || !.self._mouseCapture(event.originalEvent.changedTouches[0]))
75 return; }.
76 }
77 // 他のイベントが変更されないようにフラグを設定します。
78 // 他のウィジェットがタッチイベントを継承しないようにフラグを設定します。
79 touchHandled = true;
80 // クリックかどうかを判断するために動きを追跡します。
81 // クリックかどうかを判断するために動きを追跡します。
82 self._touchMoved = false; 83 // インタラクションがクリックかどうかを判断するために動きを追跡します。
self._touchMoved = false; 83 // マウスオーバーイベントをシミュレートします。
84 // マウスオーバーイベントをシミュレートします。
85 // マウスオーバーイベントをシミュレートします; 85 simulateMouseEvent(event, 'mouseover');
86 // マウスオーバイベントをシミュレートします。
87 // mousemoveイベントのシミュレーション
88 simulateMouseEvent(event, 'mousemove'); 89 // mousemoveイベントをシミュレートします。
89 // mousemove イベントをシミュレートします。
90 // マウスダウンイベントをシミュレートします。
91 simulateMouseEvent(event, 'mousedown'); 90 // マウスダウンイベントをシミュレートします。
92 };
93 // マウスダウンイベントをシミュレートします。
94 /**
95 * jQuery UI ウィジェットの touchmove イベントを処理します。
96 * @param {Object} event ドキュメントの touchmove イベント。
97 */
98 mouseProto._touchMove = function (event) { * /** * タッチムーブイベントを処理します。
99
100 // 処理されていない場合、イベントを無視します。
101 if (!touchHandled) {
102 return;
103 }
104 // クリックされませんでした。
105 // クリックされませんでした。
106 this._touchMoved = true;
107 // mousemoveイベントをシミュレートします。
108 // マウスムーブイベントをシミュレートします。
109 simulateMouseEvent(event, 'mousemove');
110 }; }
111 // mousemoveイベントをシミュレートします。
112 /**
113 * jQuery UI ウィジェットの touchend イベントを処理します。
114 * @param {Object} event ドキュメントの touchend イベント
115 */
116 mouseProto._touchEnd = function (event) { { タッチエンドイベントを無視します。
117 イベントを無視します。
118 // 処理されていない場合はイベントを無視
119 if (!touchHandled) { // イベントが処理されていない場合は無視します。
120 return;
121 }
122 // mouseupイベントをシミュレートします。
123 // mouseupイベントのシミュレーション
124 simulateMouseEvent(event, 'mouseup');
125 // mouseupイベントをシミュレートします。
126 // mouseoutイベントのシミュレーション
127 simulateMouseEvent(event, 'mouseout'); 128 // mouseupイベントをシミュレートします。
129 // タッチインタラクションが機能しなかった場合。
129 // タッチインタラクションが動かなかった場合、クリックをトリガーする必要があります。
130 if (!this._touchMoved) { // クリックイベントをシミュレートします。
131 // クリックイベントをシミュレートします。
132 // クリックイベントをシミュレートします。
133 simulateMouseEvent(event, 'click');
134 }
134 }
136 // タッチイベントを他のウィジェットに継承させるフラグを解除します。
137 touchHandled = false;; 138 // 他のウィジェットにタッチイベントを継承させるフラグを解除します。
138 }
139 }
140 /**
141 * $.ui.mouse _mouseInit メソッドをダックパンチし、タッチイベントをサポートします。
142 * このメソッドは、タッチイベントをマウスイベントに変換するタッチイベントハンドラを持つウィジェットを拡張します。
143 * タッチイベントをマウスイベントに変換し、ウィジェットの元のマウスイベント処理メソッドに渡します。
144 * 元のマウスイベント処理メソッドに渡します。
145 */
146 mouseProto._mouseInit = function () { マウスイベントをマウスイベントに変換し、元のマウスイベント処理メソッドに渡します。
146 mouseProto._mouseInit = function () { {.
148 var self = this;
149 // タッチハンドラをウィジェットに委譲します。
150 // タッチハンドラをウィジェットのエレメントに委譲します。
151 self.element
152 .bind('touchstart', $.proxy(self, '_touchStart'))
153 .bind('touchmove', $.proxy(self, '_touchMove'))
154 .bind('touchend', $.proxy(self, '_touchEnd'));
155 // オリジナルの$.proxy(self, '_touchEnd')を呼び出します。
156 // オリジナルの $.ui.mouse init メソッドを呼び出します。
157 _mouseInit.call(self); 158 }; }.
158 };
159
160 })(jQuery);
お問い合わせ |
---|
記事が読めない?無料でお答えします!個人サイト、中小企業サイトのための無料ヘルプ! |
① 電話:020-2206-9892 |
② QQ咨询:1025174874 |
三 Eメール:info@361sale.com |
④ 勤務時間: 月~金、9:30~18:30、祝日休み |
© 複製に関する声明
この記事はハリーが執筆しました。
この記事へのリンクhttps://www.361sale.com/ja/12533この記事は著作権で保護されており、必ず帰属表示を付けて複製してください。
終わり
コメントなし