簡體   English   中英

如何重新定位我的jQuery彈出窗口?

[英]How to reposition my jQuery popup?

我有一個使用jQuery的彈出窗口,但它與DIV在同一個地方渲染。 我希望彈出窗口在頁面中間呈現。 可能嗎? 如果是,那怎么樣?

我的CSS:

.newpopup {
    display:none;
    border: 1px solid black;
    background-color: #eee;
}

HTML:

 <div class='newpopup'>
</div>
<button>popup</button>

JavaScript的:

function popup() {
    alert('test');
    var popup = $('.newpopup');
    popup.draggable();
    popup.resizable();
    popup.html('<p>Where is pancakes house?</p>');
    popup.show('fast');
}
$(document).ready(function(){
  $('button').click(function(){
     popup();
  });
})

設置彈出式CSS position : absolute並使用top & left屬性設置彈出位置。

  .newpopup {
    display:none;
    border: 1px solid black;
    background-color: #eee;
    position:absolute;
    top:50%;
    left:50%;
}

編輯

我創造了一個小提琴, Jsfiddle它在這里完美運作,檢查出來。

您需要獲取屏幕的寬度和高度,以及您創建的框

var screen_width = $(document).width();
var screen_height = $(document).height();
var box_width = popup.width();
var box_height = popup.height();

然后你需要設置position:absolute; .newpopup 以及它的topleft位置

var top = (screen_height - box_height) / 2; // you might like to subtract a little to position it slightly higher than half way
var left = (screen_width - box_width) / 2;
popup.css({ 'position': 'absolute', 'top':top, 'left':left });

代碼可以壓縮,但更容易理解分裂。

編輯 :您可以使用$(body).prepend(popup);將彈出框添加到頁面的開頭$(body).prepend(popup); ,這意味着它不會受到任何其他元素的影響

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM