2016-12-07 10 views
-1

私は2つのブラウザウィンドウがあるように私は非常に奇妙な要件があります。あるウィンドウが別のウィンドウでホバーしているときに、どのイベントがトリガーになるのですか?

このウィンドウを最初のウィンドウにドラッグしたときに2番目のウィンドウを閉じたいと考えています。

まずこれは可能ですか?

第2の場合はどのイベントですか?

私はそのイベントで私の欲望の仕事をすることができます。

今私は、ドラッグ時にアクティブウィンドウをドラッグしたので、私は最初のウィンドウの上に別のウィンドウをdarggedが、このイベントでも起きていないとき、私はこのイベントを取得することができ、このウィンドウは、このコード

$(document).on('mouseover', function() { 
console.log('done'); 
}); 

を書かれています非活動中。

何か助けていただければ幸いです。

おかげ

あなたは、子ウィンドウに関するすべてのコードを共有していないとコメントごとに私はあなたにこれをお勧めすることができたよう
+1

あなたがこののUXの一部と見なさがありますか? – madalinivascu

+0

いいえ最初のウィンドウでドラッグすると、2番目のウィンドウを閉じたいだけです。 とウィンドウはJavaScriptモーダルボックスではありません。これらはブラウザウィンドウです。 –

+0

はあなたのコントロールの両方のウィンドウですか? – madalinivascu

答えて

0

ことによってそれを閉じるトリガすることができます。 StackOverflowブロックがウィンドウをポップアップするので、下のスニペットはここでは機能しませんので、別の場所で試してみてください。

var a; 
 
var b; 
 

 
function openA(){ 
 
    a = window.open("","w1","width=250,height=150,top=0"); 
 
    a.document.title = "A"; 
 
} 
 

 
function openB(){ 
 
    b = window.open("","w2","width=250,height=150,top=200,left=400"); 
 
    b.document.title = "B"; 
 
} 
 

 
setInterval(function(){ 
 
    // If both window is not closed 
 
    if (a && !a.closed && b && !b.closed){ 
 
     // If both window overlaps 
 
     if (
 
      a.screenX + a.outerWidth > b.screenX && 
 
      a.screenX < b.screenX + b.outerWidth && 
 
      a.screenY + a.outerHeight > b.screenY && 
 
      a.screenY < b.screenY + b.outerWidth 
 
     ){ 
 
      b.close(); 
 
     } 
 
    } 
 
},1000);
<button onclick="openA()">Open window A</button> 
 
<button onclick="openB()">Open window B</button>

+0

ちょっとこれは動作します:) もう1つの質問私は親ウィンドウにドラッグしたときに私は子供のウィンドウが閉じたい場合。 あなたの場合のように2つの子ウィンドウがドラッグされて1つのウィンドウが閉じられました今、親ウィンドウにドラッグされたときに子ウィンドウを閉じたいと思っていますか? –

+0

はい、親の 'screenX'と' outerWidth'と比較する必要があります。 'a'を現在のウィンドウに変更し、' b'を子供のままにします –

0

  1. var cwin = window.open()は、子ウィンドウを作成します。
  2. これで、ウィンドウの位置をXにすることができます。
  3. setInterval()を使用して、そのウィンドウの位置を確認できます。
  4. 次に、Xの位置が親ウィンドウの幅の間にあるかどうかを確認できます。
  5. ここでは、$(cwin.parent.document).trigger('mouseover')あなたは両方のウィンドウの寸法や位置を確認する必要がcwin.close();
+0

私はwindow.screenXでそれを手に入れましたX位置 –

+0

を取得します。ウィンドウが親子でない場合は、同じレベルにある子ウィンドウと子ウィンドウのように同じレベルになります最初の子ウィンドウにドラッグされたときに、1つの子ウィンドウを閉じる方法 –

関連する問題