2016-07-27 3 views
2

こんにちは私はほとんどの画面サイズで見ることができるように応答するJSポップアップを作るために探しています。現時点では、ポップアップはページの中央にロードされますが、ブラウザが短縮されるとサイズが変更されません。JS PopUpを反応的にするには?

HTML:

<div class="col-lg-12"> 
    <div id="ac-wrapper" style='display:none'> 
    <div id="popup"> 
     <center> 
     <h2>Popup Content Here</h2> 
      <input type="submit" name="submit" value="Submit" onClick="PopUp('hide')" /> 
     </center> 
    </div> 
    </div> 
</div> 

CSS:

#ac-wrapper { 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background: rgba(255, 255, 255, .6); 
    z-index: 1001; 
} 
#popup { 
    width: 555px; 
    height: 375px; 
    background: #222; 
    border: 5px solid #000; 
    border-radius: 25px; 
    -moz-border-radius: 25px; 
    -webkit-border-radius: 25px; 
    box-shadow: #64686e 0px 0px 3px 3px; 
    -moz-box-shadow: #64686e 0px 0px 3px 3px; 
    -webkit-box-shadow: #64686e 0px 0px 3px 3px; 
    position: relative; 
    top: 150px; 
    left: 375px; 
} 

JS:

function PopUp(hideOrshow) { 
      if (hideOrshow == 'hide') document.getElementById('ac-wrapper').style.display = "none"; 
      else document.getElementById('ac-wrapper').removeAttribute('style'); 
     } 
     window.onload = function() { 
      setTimeout(function() { 
       PopUp('show'); 
      }, 5000); 
     } 

更新:

Here's whats happening! the popup box is still not resizing to the page dimensions

更新:最大幅に

Thanks for the help @beerwin the following link shows the popup box now floats up in the corner of the page?

答えて

1

基本的にあなたが555px未満の画面にポップアップ幅に合うように役立つの最大幅を設定する必要があります(555px - ポップアップの幅)。正確な要件についてはわかりませんが、ここでは、ポップアップを水平に中央に配置する必要があると仮定することでできることを示しています。ここで

#popup{ 
    max-width: 555px; 
    height: 375px; 
    position:absolute; 
    /* your rest of the styles */ 
} 

/* To align horizontally center for screens greater than 555px width */ 
@media (min-width:555px){ 
    #popup{ 
     left:calc(50% - 277px); /* 277px is the half of 555px */ 
    } 
} 

はフィドルです:https://jsfiddle.net/3js5mLpb/

+0

私の質問の更新を見て、それは何が起こっているの写真がありますか?私は画面が最小化されたときに完全なボックスを見ることができるようにしたい。助けてくれてありがとう。 – giofus

+0

これは@beerwinコードと少しの組み合わせで動作しています。ありがとう百万 – giofus

+0

この場合、両方の質問をupvoteし、どちらが最も役立つかを受け入れることができます。 – beerwin

0

変更幅

#popup { 
    max-width: 555px; 
    height: 375px; 
    background: #222; 
    border: 5px solid #000; 
    border-radius: 25px; 
    -moz-border-radius: 25px; 
    -webkit-border-radius: 25px; 
    box-shadow: #64686e 0px 0px 3px 3px; 
    -moz-box-shadow: #64686e 0px 0px 3px 3px; 
    -webkit-box-shadow: #64686e 0px 0px 3px 3px; 
    position: relative; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%,-50%); 
} 
+0

返事をお寄せいただきありがとうございますが、まだ動作していませんか?それはまだ同じ位置に座り、ページが最小化されるとボックスは見えなくなるでしょう。 – giofus

+0

このプロパティを置き換えます:transform:translate(-50%、 - 50%); –

0

あなたのdeffinition

#popup { 
    width: 555px; 
.. 
} 

使用 '%' 式の静的な幅を持っています。

#popup { 
    width: 80%; 
    ... 
} 

か、COL-MD-6、COL-MD-12(ブートストラップ・ページ上の定義を参照)のように、ブートストラップクラスを使用しますが、幅は削除することができます:555pxを。

+0

回答ありがとうございますが、まだ動作していませんか?それはまだ同じ位置に座り、ボックスは最小限に抑えられているので見えなくなります。私は起こっていることを示すために上記のリンクに画像を追加しました。 – giofus

+0

マージンを削除する:top:50%;左:50%;コンテンツ全体を見ることができたら、20pxのような余白を追加することができます。 – alexey

0

widthからmax-width,heightからmax-heightに変更し、height: 90%; width: 90%を追加してください。これにより応答性が向上します。

ポップアップ機能を更新して、常に画面に収まるようにポップアップの位置を自動的に調整します。

以下の実施例を参照してください。

function PopUp(hideOrshow) { 
 
     var popup = document.getElementById('ac-wrapper'); 
 
     if (hideOrshow == 'hide') { 
 
      popup.style.display = "none"; 
 
     } 
 
     else { 
 
      popup.removeAttribute('style'); 
 
      popup.style.marginLeft = (popup.offsetWidth/2) * -1 + "px"; 
 
      popup.style.marginTop = (popup.offsetHeight/2) * -1 + "px"; 
 
     } 
 
     } 
 
     window.onload = function() { 
 
      setTimeout(function() { 
 
       PopUp('show'); 
 
      }, 1000); 
 
     }
#ac-wrapper { 
 
    position: fixed; 
 
    top: 0; 
 
    left: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
    background: rgba(255, 255, 255, .6); 
 
    z-index: 1001; 
 
} 
 
#popup { 
 
    width: 90%; 
 
    height: 90%; 
 
    max-width: 555px; 
 
    max-height: 375px; 
 
    background: #222; 
 
    border: 5px solid #000; 
 
    border-radius: 25px; 
 
    -moz-border-radius: 25px; 
 
    -webkit-border-radius: 25px; 
 
    box-shadow: #64686e 0px 0px 3px 3px; 
 
    -moz-box-shadow: #64686e 0px 0px 3px 3px; 
 
    -webkit-box-shadow: #64686e 0px 0px 3px 3px; 
 
    position: relative; 
 
    top: 50%; 
 
    left: 50%; 
 
}
<div class="col-lg-12"> 
 
    <div id="ac-wrapper" style='display:none'> 
 
    <div id="popup"> 
 
     <center> 
 
     <h2>Popup Content Here</h2> 
 
      <input type="submit" name="submit" value="Submit" onClick="PopUp('hide')" /> 
 
     </center> 
 
    </div> 
 
    </div> 
 
</div>

+0

@FvZコードと少しの組み合わせでこれが動作しました。ありがとうございます。 – giofus

+0

このケースでは、両方の質問をupvoteし、どちらが最も役立つかを受け入れることができます。 – beerwin

関連する問題