- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サブウィンドウの動きを制御したい!)
サブウィンドウの動きを制御したい!
このQ&Aのポイント
- 親ウインドウのボタンをクリックすると、サイズ400×300のサブウィンドウがモニタ画面の左上(0,0)にオープンするようにしています。
- サブウィンドウは、モニタ画面に現れた後、下にすべってタテ位置のみモニタ画面中央に行き、そして右方向に滑ってモニタ画面の中央に配置されるようにしたいです。
- 現在のスクリプトではうまく動作しません。if文の条件に問題があるのかもしれませんが、未熟なため原因を特定できません。助けていただけると嬉しいです。
- みんなの回答 (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>
お礼
madmanさんへ 簡潔で完璧なご回答でした。 本当にありがとうございました。