Jquery的彈出框,始終顯示在裝置的正中間
阿新 • • 發佈:2019-02-11
作為前端,彈窗是經常寫的,大多數彈出框都會顯示在裝置(PC或者移動端)的正中間。
下面給大家介紹下我的方法,僅供參考!
1.讓層始終顯示在螢幕正中間:
Css程式碼:
Html程式碼- .model{
- position: absolute; z-index: 1003;
- width:320px; height:320px; text-align:center;
- background-color:#0066FF; display: none;
- }
- //讓指定的DIV始終顯示在螢幕正中間
- function letDivCenter(divName){
- var top = ($(window).height() - $(divName).height())/2;
- var left = ($(window).width() - $(divName).width())/2;
- var scrollTop = $(document).scrollTop();
- var scrollLeft = $(document).scrollLeft();
- $(divName).css( { position : 'absolute', 'top' : top + scrollTop, left : left + scrollLeft } ).show();
- }
html程式碼:
Html程式碼- <a href="javascript:;" onclick="letDivCenter('#model')">點我讓DIV始終顯示在螢幕中間</a><br />
- <div>
- <div id="model" class="model">
- 這是內容(不過沒有垂直居中顯示)希望各位高手,能夠補充。小弟在此謝過了。
- </div>
- </div>
執行一下看看效果吧。
2.接下來總結一下,將它們整合成一個。即,當彈出div層的時候,同時也要彈出遮罩層,好,廢話不多說,看程式碼:
(1).CSS樣式:
Html程式碼- <style type="text/css">
- .mask {
- position: absolute; top: 0px; filter: alpha(opacity=60); background-color: #777;
- z-index: 1002; left: 0px;
- opacity:0.5; -moz-opacity:0.5;
- }
- .model{
- position: absolute; z-index: 1003;
- width:320px; height:320px; text-align:center;
- background-color:#0066FF; display: none;
- }
- </style>
(2)Jquery程式碼:
Html程式碼- <script type="text/javascript">
- //相容火狐、IE8
- function showMask(){
- $("#mask").css("height",$(document).height());
- $("#mask").css("width",$(document).width());
- $("#mask").show();
- }
- //讓指定的DIV始終顯示在螢幕正中間
- function letDivCenter(divName){
- var top = ($(window).height() - $(divName).height())/2;
- var left = ($(window).width() - $(divName).width())/2;
- var scrollTop = $(document).scrollTop();
- var scrollLeft = $(document).scrollLeft();
- $(divName).css( { position : 'absolute', 'top' : top + scrollTop, left : left + scrollLeft } ).show();
- }
- function showAll(divName){
- showMask();
- letDivCenter(divName);
- }
- </script>
3.HTML程式碼:
Html程式碼- <div id="mask" class="mask"></div>
- <a href="javascript:;" onclick="showMask()" >點我顯示遮罩層</a><br />
- <a href="javascript:;" onclick="letDivCenter('#model')">點我讓DIV始終顯示在螢幕中間</a><br />
- <a href="javascript:;" onclick="showAll('#model')">點我顯示所有</a><br />
- <div>
- <div id="model" class="model">
- 這是內容(不過沒有垂直居中顯示)希望各位高手,能夠補充。小弟在此謝過了。
- </div>
- </div>