HTML のドラッグ&ドロップ (4. SAFE Stack の ToDo アプリのタッチ対応)
HTML のドラッグ & ドロップ API をそのままだとタッチデバイスで使えない件 (link) は、 mobile-drag-drop (GitHub) という polyfill でサクッと解決した。
下記の手順で SAFE Stack の ToDo アプリに mobile-drag-drop を取り込んだだけで、 PC のブラウザで動作確認したドラッグ & ドロップの実装が iPhone ・ iPad でも利用できた。
-
動作確認したタッチデバイス
機種 OS polyfill の要否 iPhone 7 Plus iOS 14.7.1 必要 iPad mini 5 iPadOS 14.7.1 必要 AQUOS sense3 lite Android11 不要
iPad mini は Apple Pencil でもドラッグ & ドロップの操作をできる。 画面サイズに合わせた作り込みをしたら、かなり快適に使えそう。
手順
手順 1 : mobile-drag-drop パッケージをインストール
手順 2 : index.html で mobile-drag-drop をロード
index.html の差分
index.html の全文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!doctype html>
<html>
<head>
<title>SAFE Template</title>
<meta charset="utf-8">
<link rel="icon" type="image/png" href="/favicon.png"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.0/css/bulma.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css">
<link rel="stylesheet" href="mobile-drag-drop/default.css">
<script src="mobile-drag-drop/index.min.js"></script>
<!--optional import of scroll behaviour-->
<script src="mobile-drag-drop/scroll-behaviour.min.js"></script>
<script>
// options are optional ;)
MobileDragDrop.polyfill({
// use this to make use of the scroll behaviour
dragImageTranslateOverride: MobileDragDrop.scrollBehaviourDragImageTranslateOverride
});
</script>
</head>
<body>
<div id="elmish-app"></div>
</body>
</html>