• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サブウィンドウの動きを制御したい!)

サブウィンドウの動きを制御したい!

このQ&Aのポイント
  • 親ウインドウのボタンをクリックすると、サイズ400×300のサブウィンドウがモニタ画面の左上(0,0)にオープンするようにしています。
  • サブウィンドウは、モニタ画面に現れた後、下にすべってタテ位置のみモニタ画面中央に行き、そして右方向に滑ってモニタ画面の中央に配置されるようにしたいです。
  • 現在のスクリプトではうまく動作しません。if文の条件に問題があるのかもしれませんが、未熟なため原因を特定できません。助けていただけると嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

まず、2つ目のif文にelseをつけないと、最後のelseが有効になってしまい、setTimeoutがキャンセルされます。 その次に、pY==cYになることはありませんのでpY>=cYで判定するか、pY==cYになるように作り変える必要があります。 また、こう換えると右へスライドしたウィンドウを停めるところがありませんので、最後のelseはX軸を停める必要があります。 書き換えると以下のようになりました。 ---- <script language="javascript"> <!-- var disW= screen.availWidth; var disH= screen.availHeight; var cX=disW/2-200; var cY=disH/2-150; var pX=0; var pY=0; var timerID; function moveWin(){ if(pY < cY){ pY+=5; window.moveTo(0,pY); timerID=setTimeout("moveWin()",1); } else if(pY>=cY){ pX+=5; window.moveTo(pX,cY); timerID=setTimeout("moveWin()",1); if(pX>=cX) { clearTimeout(timerID); } } } //--> </script>

omokawa
質問者

お礼

madmanさんへ 簡潔で完璧なご回答でした。 本当にありがとうございました。

関連するQ&A