2017-08-10 9 views
0

私はstackoverflowに関する多くの似たような質問があることを知っています。私はそれらのいくつかを読んだことがあります。私はHTML要素をドラッグしながらカーソルを変更したい。私はこれを試みた:HTML要素をドラッグしながらカーソルを変更する

var startX = null; 
var startY = null; 
var element = document.getElementById('bla'); 

element.addEventListener('dragstart', onDragStart, true); 
element.addEventListener('dragend', onDragEnd, true); 
element.addEventListener('drag', onDrag, true); 

function onDragStart(e){ 

    startX = e.screenX; 
    startY = e.screenY; 
    e.target.style.cursor = "move"; 
} 

function onDrag(e){ 

    e.target.style.cursor = "move"; 
} 

function onDragEnd(e){ 

    var style = document.defaultView.getComputedStyle(element); 

    var newLeft = parseInt(style.left) + e.screenX - startX; 
    var newTop = parseInt(style.top) + e.screenY - startY; 

    e.target.style.left = newLeft + 'px'; 
    e.target.style.top = newTop + 'px'; 

    e.target.style.cursor = "default"; 
} 

しかし、それは動作しません。なぜ地球上でe.target.style.cursor = "move"が動作しないのか分かりません。私はdocument.body.style.cursor = "move"に変更しようとしましたが、どちらも動作しません。私のコードがうまくいかない理由を説明しながら、この問題を解決する助けとなることは大いに感謝します。

JSフィドルリンク:https://jsfiddle.net/4w20xxvp/59/

Psと。私は純粋なJSソリューション、ないJQueryを探しています。 Ps2。私は私の場合には答えを得ることができませんでした。そして、私はカスタムのカーソルイメージを使用したくない、ちょうど標準のCSSイメージを使用したい。

+0

可能重複[HTML5のドラッグ&ドロップの変更アイコン/カーソルドラッグ中(https://stackoverflow.com/questions/10119514/html5-drag-drop-change-icon -cursor-while-dragging) – Nisarg

+0

上記のリンクの回答を私の場合には使用できませんでした。カスタム・イメージを使用したくない場合(答えの1つで説明)、CSSカーソル(style.cursor)の1つを使用したいと考えています。 – Furman

+0

どのOS /ブラウザをお使いですか?私のmac/chromeはあなたのコードでうまく動作します。 –

答えて

-1

他のドラッグイベントのデフォルトを防止してください。また、dragoverイベントを処理するドロップターゲットを追加することもできます。

document.addEventListener('dragover', (e) => e.preventDefault(), true) 

Fiddle)の

関連する問題