私はすべてを試しましたが、この Javascript コードは機能しません:
document.addEventListener('DOMContentLoaded',function(e){
console.log('kk');
var box=document.getElementById('box');
var body=document.getElementsByTagName('body')[0];
setTimeout(document.getElementById('msgline').style.opacity=1,1000);
body.addEventListener('dragenter',function(e){
console.log('kkkkkkk!');
box.style.transform=box.style.webkitTransform='rotateX(-20deg) rotateY(180deg)';
enters++;
e.preventDefault();
return false;
});
body.addEventListener('dragover',function(e){e.preventDefault(); return false;});
body.addEventListener('dragleave',function(e){
if(--enters===0)
box.style.transform=box.style.webkitTransform='rotateX(-20deg)';
});
body.addEventListener('drop',function(e){
var files=e.dataTransfer.files;
[].forEach.call(files,function(file){
convertToMOSTEM(file);
}
);
e.preventDefault();
return false;
});
});
少なくとも Firefox にはありません。body
これは、html5 ドラッグのイベント ハンドラーを登録するためのものです。box
ボディをドラッグするときにいくつかのスタイルを適用し、dragleave でそれらを削除する必要があります。convertToMOSTEM
また、ファイルがドロップされるたびに呼び出す必要があります。kk をコンソールに記録します。これは、 内のコードDOMContentLoaded
が実行されたことを意味します。ただし、ボックスをアニメーション化したり、kkkkkkkk をログに記録したりすることはありません。ドラッグしたり離れたりするとコンソールに表示され、ドロップするとファイルを開こうとします。イベントハンドラーが定義されていないことは確かです。Safari と Chrome で動作します。何が問題ですか?