0

画像をドラッグするために以下のコードを使用しています(#StndSoln1)。Chrome などすべてで完全に機能しますが、Firefox では機能しません。ここで startDrag() は、マウスダウン イベント リスナーにアタッチした関数です。誰でも私を助けてくれませんか。

function initialFunction(){


document.getElementById("StndSoln1").addEventListener('mousedown',startDrag,false);
document.getElementById("StndSoln1").addEventListener('mousemove',drag,false);
document.getElementById("StndSoln1").addEventListener('mouseup',stopDrag,false);


}


function startDrag()

{

if (!moveFlag){


currentTraget=document.getElementById("StndSoln1");

offsetX=currentTraget.offsetLeft;
offsetY=currentTraget.offsetTop;
ImgPlaced=false;    
moveFlag=true;

x=window.event.clientX;
y=window.event.clientY; 

event.preventDefault();
}
}

   // Fn for drag the current target object...
  function drag(){

if (moveFlag && !ImgPlaced){    
    currentTraget.style.left=(offsetX+window.event.clientX-x)+"px";
    currentTraget.style.top=(offsetY+window.event.clientY-y)+"px";
}
}
4

1 に答える 1

2

私は実際に同様の問題を抱えていたので、あなたが使用しているコードがなくても助けようとすることができます.

ほら、Firefoxの開発者は、画像をドラッグするときに画像を「移動」し、場合によってはエクスプローラーウィンドウにドロップしてすばやく簡単にダウンロードしたり、タブバーに開いて開いたりできるようにするという素晴らしいアイデアを持っていました新しいタブの画像。これの明らかな欠点は、他のブラウザーにはないデフォルトの動作になることです。

簡単な解決策は、すべてのイベントがデフォルト アクション ( event.preventDefaultreturn false、そのようなもの) を適切にキャンセルしていることを確認することです。それも失敗した場合は、要素の代わりに<div>a を持つ要素を使用する必要があります。background-image<img>

于 2012-06-15T19:55:26.830 に答える