为什么我的模态不会在窗口的死角打开?

时间:2012-02-10 02:24:33

标签: javascript jquery ajax modal-dialog

我遇到了一个错误,我的模态不会在中心窗口打开。我目前用于测量中间的代码如下:

var id = j('#share-modal');

// show modal, resize
j(id).css('top',  j(window).height()/2-j(id).height()/2);                 
j(id).css('left', j(window).width()/2-j(id).width()/2);

j('#share-modal').fadeIn(500);


 CSS

#share-modal {
    display: none;
    font-family: Arial, sans-serif;
    width: 537px;
    height: 510px;
    position: absolute;
    background: #FFF;
    z-index: 100;
    box-shadow: 3px 3px 3px #333;
    -moz-border-radius: 15px;
    -webkit-border-radius: 15px;
}

这是我认为唯一能够代码居中的代码,但我无法判断是否存在其他干扰。

在这里查看我的Javascript: http://pastebin.com/wZeY5azT

您可以在此处查看:www.paultibbs.com/varier

向下滚动并点击“与朋友分享”按钮。

如果有人可以帮我解决这个错误,我将不胜感激!

2 个答案:

答案 0 :(得分:1)

您需要考虑滚动位置。

// Add the pageYOffset should fix the problem
j(id).css('top',  (j(window).height()/2-j(id).height()/2) + window.pageYOffset);

您还必须保持对滚动事件的监视并重新生成位置,以防它们向上和向下滚动。

答案 1 :(得分:1)

来自jQuery Docs:

var height = $(window).height();
var scrollTop = $(window).scrollTop();

http://docs.jquery.com/CSS/scrollTop
http://docs.jquery.com/CSS/height

通过How do I determine height and scrolling position of window in jQuery?