2016-09-24 16 views
0

"擬似ドラッグ"を実装しようとしています:要素をドラッグしますが、要素自体はドラッグされません。カーソルが必要な領域に変更されますしかし、悪い点は、マウスが必要な領域にあるときにカーソルが変更されないということです。その領域でマウスを離すときにのみ変化します。 DOMインスペクタを見ると、のコードでが変更されますが、必要に応じてが画面上に表示されますマウスボタンを放すと、変更されます。mousedownとドラッグ(IE11)でカーソルが変わらない

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <title>Test drag</title> 
 
\t <script> 
 
\t \t document.addEventListener('DOMContentLoaded', function (event) { 
 
\t \t \t var btn = document.querySelector('#btn'); 
 
\t \t \t var to = document.querySelector('#to'); 
 
\t \t \t btn.addEventListener('mousedown', function (event) { 
 
\t \t \t \t to.style.cursor='wait'; 
 
\t \t \t }); 
 
\t \t }); 
 
\t </script> 
 
</head> 
 
<body> 
 
\t <div id="from"> 
 
\t \t <button id='btn'>DRAG ME!</button> 
 
\t </div> 
 
\t <div id="to" style="height: 150px;background-color: aqua;"></div> 
 
</body> 
 
</html>

この問題は、IE11で報告されました:私は、問題の簡単な例をやりました。

ですから、問題は:カーソルをドラッグして(LMBを押して)目的の領域にカーソルを移動させる方法はありますか?

答えて

0

奇妙な種類ですが、これはIE11とChromeでうまくいくはずです。

var btn = document.getElementById('btn'); 
 
var to = document.getElementById('to'); 
 

 
document.addEventListener('mousedown', function (event) { 
 
    if(event.target.id === 'btn') { 
 
    
 
    // for Chrome 
 
    to.style.cursor='wait'; 
 
    
 
    // for IE11 
 
    to.classList.add('wait'); 
 
    to.focus(); 
 
    } 
 
}); 
 

 
document.addEventListener('mouseup', function (event) { 
 
    
 
    // for Chrome 
 
    to.style.cursor='default'; 
 
    
 
    // for IE11 
 
    to.blur(); 
 
    to.classList.remove('wait'); 
 
})
.wait:hover { 
 
    cursor: wait; 
 
}
<div id="from"> 
 
    <button id='btn'>DRAG ME!</button> 
 
</div> 
 
<div id="to" style="height: 150px;background-color: aqua;"></div>

関連する問題