私は同じページ内のある場所から別の場所にdivをドラッグアンドドロップするためのjavascriptアプリケーションを構築しました。私はドラッグ部分を作った。私はdivを落とさなければならないdiv(s)の座標を持っていますが、target zoneでdivを一致させる条件を導入すべき部分にはまっています。基本的にdivはdivの上にドロップすることができますが、onmouseupイベントの場合はターゲットdivのすぐ近くにドロップする必要があります。私は私のドラッグされた(onmousdown)divの上部と左の属性をターゲットのdivに割り当てることを考えていますが、私は間違っているかもしれません..この部分を通して私を案内してください。ここ は、私は助けを必要とする部分である:、jsfiddle javascriptの一部それを動作させるために、HTMLの中に記述する必要があります適切にonmouseupでコーディネートを受けるには?
0
A
答えて
1
質問のタイトルは誤解を招くです:ここでは
function mouseUp(e)
{
e = e || window.event;
var mousePos = mouseCoords(e);
var itemPosition = getPosition(id);
//console.log("This is at: "+itemPosition);
//console.log(mousePos);
console.log(getPosition(id));
for(var i=0;i<destination.length;i++)
{
var curTarget = destination[i];
var targPos = getPosition(curTarget);
var targWidth = parseInt(curTarget.offsetWidth);
var targHeight = parseInt(curTarget.offsetHeight);
var temp = document.elementFromPoint(event.clientX, event.clientY);
}
id = null;
}
は私のコードへのリンクがありますあなたが本当に問題を抱えているように見えるのは、ターゲットdivsの座標を見つけることです。レンダーされたページに対してであり、ビューポートではなく(すなわち、ユーザが見ているウィンドウ)、座標としてpageX
とpageY
座標を使用したいと思うかもしれませんが、あなたはclientX
とclientY
を使ってマウス座標をちょうどうまくつかんでいます。クライアント座標を使用する0,0は、ユーザーがスクロールするときに変更されますが、ページ座標はWebページ上の特定の場所を参照します。あなたのドロップを見つけるためとして
は、あなたが要素にメソッドgetClientBoundingRect
を使用して、マウスのpageX
とpageY
座標が内側にあるかどうかを判断するために返されたオブジェクトにtop
、right
、bottom
、およびleft
プロパティを使用することができるのdiv(または内側に近い)要素。
もっと良い方法があるかもしれませんが、これが私のやり方です。
function mouseUp(e){
var targets = document.getElementsByClassName("drop_here");
for(var i=0;i<targets.length;i++){
var bounds = targets[i].getClientBoundingRect();
var lenience = 5;
if(e.pageX < bounds.right + lenience &&
e.pageX > bounds.left - lenience &&
e.pageY < bounds.top - lenience &&
e.pageY > bounds.bottom + lenience){
//do my work here
}
}
}
関連する問題
- 1. CruiseControl.Netで複数のビルドをコーディネートする方法は?
- 2. html divは "onmouseup、onkeyup"をオーバーロードします
- 3. タグをonMouseUpトリガーとリンクする
- 4. onmousedownイベントの終了(onmouseup?)
- 5. タイムスタンプを受け取るには?
- 6. のOpenGL:正規の世界のコーディネート
- 7. AndroidアプリケーションでBluetooth受信ファイルを受け入れる方法は?
- 8. javascript iframe onmouseupが動作しない
- 9. FPSControllerの子オブジェクトのOnMouseUp [Unity 3d]
- 10. 受注結果を受け入れる
- 11. STS/Eclipse JSエディタにJSXを受け付ける方法は?
- 12. SQLite3はコンソール上でiso-8859-9を受け取りますが、PHPクエリでは受け付けません
- 13. iOS UIButtonはフレーム外でタッチを受け取りますが、フレーム内では受け付けません
- 14. Tomcat.8.5.15は、URIに「\」を受け入れ、
- 15. メールを送信する:Gmailの受信者はカレンダーでイベントを受け取る
- 16. レガシーコードの受け入れを受け入れる
- 17. ドッカーでポートを待ち受けるには?
- 18. laravelで電子メールを受け取るには?
- 19. linux/QtでUSB通知を受け取るには?
- 20. プラグインアクティベータで選択サービスを受けるには
- 21. WebMethodで非プリミティブデータを受け取るには?
- 22. UIViewAnimationOptions.CurveEaseInがコーディネートされたアニメーション内で動作しない
- 23. どのように制御/コーディネートされたアルゴリズム
- 24. アンドロイドで自動的に通話を受け付ける方法は?
- 25. ダブルクリックイベントを受け取る
- 26. EOFパニックエラーを受け取る
- 27. プッシュデータをRで受け取るShiny application
- 28. iframeブラックベリーでjsonを受け取る5
- 29. connectionDidFinishLoading、EXC_BAD_ACCESSでエラーを受け取る
- 30. PHPでマルチリクエストを受け取る方法
私のjsfiddleリンクをあなたが言っているもので更新できますか?答えはbtw ..ありがとう –
私は私の答えであなたのコードにそれを書くつもりはない、例を書いてみましょう。 – Don
例で十分でしょう:) –