1
例スクロール可能なコンテナの上にドラッグしながら:あなたが項目の最上部/下部に「私をドラッグ..」テキストをドラッグすることhttp://codepen.io/eliseosoto/pen/YqxQKx防ぎ自動スクロールここ
const l = document.getElementById('scrollableList');
const item3 = document.getElementById('item3');
l.addEventListener('mouseover', function(e) {
e.stopPropagation();
e.preventDefault();
console.log('mouseover', e.target);
});
item3.addEventListener('dragenter', function(e) {
e.stopPropagation();
e.preventDefault();
console.log('dragenter', e.target);
});
l.addEventListener('dragover', function(e) {
console.log('xxx');
e.stopPropagation();
e.preventDefault();
});
l.addEventListener('scroll', function(e) {
console.log('scroll!', e);
e.stopPropagation();
e.preventDefault();
});
item3.addEventListener('dragover', function(e) {
console.log('dragover item3');
e.stopPropagation();
e.preventDefault();
});
#container {
background-color: lightblue;
}
#scrollableList {
height: 50px;
background-color: green;
overflow: auto;
}
<div id="container">
<br>
<div id="scrollableList">
<div>Item 1</div>
<div>Item 2</div>
<div id="item3">Item 3</div>
<div>Item 4</div>
<div>Item 5</div>
<div>Item 6</div>
<div>Item 7</div>
<div>Item 8</div>
<div>Item 9</div>
<div>Item 10</div>
<div>Item 11</div>
<div>Item 12</div>
<div>Item 13</div>
<div>Item 14</div>
</div>
<br>
<div id="dragMe" draggable="true">Drag me near the top/bottom of the Item list.</div>
</div>
はお知らせリスト、自動的にスクロールするリスト。
通常、この動作は目的のドロップゾーンを表示することができるため便利ですが、時にはそれが望ましくないこともあります。
Chrome 47+でその動作を無効にする純粋なJS方法はありますか?私は 'dragover'、 'mouseover'、 'scroll'など、さまざまな要素を無駄にしようとしました。
この質問の回答がここにあります。 http://stackoverflow.com/q/4770025/684869 – cgatian
ありがとう!それでもまだ完全ではありませんが、それにはいくつかの欠点があります:a)リストの上にドラッグできるものにdragstart/dragendリスナーを追加する必要があります。 b)ファイルをドラッグしたり、リスト自体からテキストを選択してドラッグしたりして、リストをスクロールすることもできます。 –