回答編集履歴

5

追記

2019/06/12 04:35

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37409

test CHANGED
@@ -25,3 +25,79 @@
25
25
  ~~`drag`イベントを検出したら`mousemove`イベントでマウス位置を拾う、という合わせ技を思いつきました。
26
26
 
27
27
  [Element: mousemove event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Element/mousemove_event)~~
28
+
29
+
30
+
31
+ ##### 追記
32
+
33
+ `dragenter`イベントを使う方法もそれほど筋は悪くない、と思いなおしたので、サンプルを作成しました。
34
+
35
+ [サンプル](https://jsfiddle.net/Lhankor_Mhy/adnmbkcv/)
36
+
37
+ ```js
38
+
39
+ var f = false;
40
+
41
+ var scroll = function(){
42
+
43
+ scrollBy(0,1);
44
+
45
+ if (f) var id = requestAnimationFrame(scroll);
46
+
47
+ }
48
+
49
+ var scrollArea = document.getElementById('scrollArea');
50
+
51
+ scrollArea.addEventListener('dragenter', function(){
52
+
53
+ f = true;
54
+
55
+ scroll();
56
+
57
+ });
58
+
59
+ scrollArea.addEventListener('dragleave', function(){
60
+
61
+ f = false;
62
+
63
+ });
64
+
65
+ ```
66
+
67
+ ```html
68
+
69
+ <img src="http://placehold.jp/150x150.png?text=" draggable>
70
+
71
+ <div id="scrollArea">
72
+
73
+
74
+
75
+ </div>
76
+
77
+ ```
78
+
79
+ ```css
80
+
81
+ body {
82
+
83
+ height: 2000px;
84
+
85
+ }
86
+
87
+
88
+
89
+ #scrollArea {
90
+
91
+ position: fixed;
92
+
93
+ height: 20vh;
94
+
95
+ bottom: 0;
96
+
97
+ width: 100%;
98
+
99
+ background: gray;
100
+
101
+ }
102
+
103
+ ```

4

誤りがあったので削除

2019/06/12 04:35

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37409

test CHANGED
@@ -1,4 +1,6 @@
1
- 間違いのご指摘があったので検証するまでいったん削除します。
1
+ ~~間違いのご指摘があったので検証するまでいったん削除します。~~
2
+
3
+ 誤りがあったので削除します。
2
4
 
3
5
 
4
6
 

3

間違いの指摘があったので検証するまでいったん削除

2019/06/12 03:48

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37409

test CHANGED
@@ -1,17 +1,25 @@
1
- `drag`イベントを使えばい……と思ったのですが、試してみとマウス位置が検出されないです。
1
+ 間違のご指摘があったので検証するまでん削除します。
2
-
3
- [Document: drag イベント - Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/Document/drag_event)
4
2
 
5
3
 
6
4
 
7
- なので、透明な要素をスクリーン下部に用意して、`dragenter`イベントを拾ってスクロールさせる、というやり方が無難なような気がします。
8
5
 
6
+
7
+ ~~`drag`イベントを使えばいい……と思ったのですが、試してみるとマウス位置が検出されないみたいです。
8
+
9
+ [Document: drag イベント - Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/Document/drag_event)~~
10
+
11
+
12
+
13
+
14
+
15
+ ~~なので、透明な要素をスクリーン下部に用意して、`dragenter`イベントを拾ってスクロールさせる、というやり方が無難なような気がします。
16
+
9
- [Document: dragenter event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Document/dragenter_event)
17
+ [Document: dragenter event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Document/dragenter_event)~~
10
18
 
11
19
 
12
20
 
13
21
  ##### 追記
14
22
 
15
- `drag`イベントを検出したら`mousemove`イベントでマウス位置を拾う、という合わせ技を思いつきました。
23
+ ~~`drag`イベントを検出したら`mousemove`イベントでマウス位置を拾う、という合わせ技を思いつきました。
16
24
 
17
- [Element: mousemove event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Element/mousemove_event)
25
+ [Element: mousemove event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Element/mousemove_event)~~

2

追記

2019/06/12 03:25

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37409

test CHANGED
@@ -7,3 +7,11 @@
7
7
  なので、透明な要素をスクリーン下部に用意して、`dragenter`イベントを拾ってスクロールさせる、というやり方が無難なような気がします。
8
8
 
9
9
  [Document: dragenter event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Document/dragenter_event)
10
+
11
+
12
+
13
+ ##### 追記
14
+
15
+ `drag`イベントを検出したら`mousemove`イベントでマウス位置を拾う、という合わせ技を思いつきました。
16
+
17
+ [Element: mousemove event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Element/mousemove_event)

1

訂正

2019/06/12 03:07

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37409

test CHANGED
@@ -4,6 +4,6 @@
4
4
 
5
5
 
6
6
 
7
- なので、透明な要素を下部に用意して、`dragenter`イベントを拾ってスクロールさせる、というやり方が無難なような気がします。
7
+ なので、透明な要素をスクリ下部に用意して、`dragenter`イベントを拾ってスクロールさせる、というやり方が無難なような気がします。
8
8
 
9
9
  [Document: dragenter event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Document/dragenter_event)