Javascript 调整浏览器屏幕的大小弄乱了我的div';s偏移量

Javascript 调整浏览器屏幕的大小弄乱了我的div';s偏移量,javascript,jquery,css,offset,Javascript,Jquery,Css,Offset,我目前正在制作一款麻将游戏。这场比赛完美无缺。一切正常,直到我决定将游戏放入div(div id=“holder”)以确保它在浏览器窗口中居中 会发生什么 第1步: 调整浏览器窗口的大小,使其与游戏大小相匹配(因此在左侧或右侧没有白色边框)。注意:在向顶部添加更多空间时,此问题也适用,但在本演示中,无法调整此问题 第二步: 点击:点击开始< /代码>,游戏将开始,然后点击任何提示按钮。你会看到一个NR出现在刚才点击的按钮上方,它向上移动,消失。这个NR的位置是正确的,应该总是出现在你点击的提示按

我目前正在制作一款麻将游戏。这场比赛完美无缺。一切正常,直到我决定将游戏放入div(
div id=“holder”
)以确保它在浏览器窗口中居中

会发生什么

第1步: 调整浏览器窗口的大小,使其与游戏大小相匹配(因此在左侧或右侧没有白色边框)。注意:在向顶部添加更多空间时,此问题也适用,但在本演示中,无法调整此问题

第二步: 点击:<代码>点击开始< /代码>,游戏将开始,然后点击任何提示按钮。你会看到一个NR出现在刚才点击的按钮上方,它向上移动,消失。这个NR的位置是正确的,应该总是出现在你点击的提示按钮的上方。

第三步: 现在调整浏览器窗口的大小,在游戏的左右两侧留出2厘米的空白

第4步: 现在点击另一个提示按钮。注意NR正在出现,但是不是在提示按钮的中间和上方,而是在右边2cm。

那么发生了什么呢?我猜div(
div class=“score”
)的偏移量(包含nr)包括其偏移量的空白(或类似的内容)

这显然是我不想要的!但我不知道如何解决这个问题

一些代码片段:

该部门的CSS:

#holder {
    width: 940px; 
    margin: auto auto;
}
.score {
    display: none;
    pointer-events: none;
    position: absolute;
    font-size: 1em;
    text-align: center;
    color:#FFF;
    z-index: 1;
}
JS部分(使用jQuery):

如果需要更多的代码,请让我知道,但我认为这是足够的。希望这个问题可以解决


亲切的问候

在你的位置:相对

#holder {
    width: 940px; 
    margin: auto auto;
    position: relative;
}

看看这是否解决了问题。

何时计算偏移变量? 当单击提示时,应将其存储

如果在隐藏之前取偏移量,会发生什么情况


var offset=$(this.offset().hide(500);

我想我已经找到了它。在我的CSS中,我有另一个div:

#s0 {
    position: relative;
    float: left; 
    height: 570px;
    width: 760px;
    background: #222 url('images/bg.png');
}

删除:
position:relative;
似乎可以修复它。将进行更多的测试。谢谢您的建议!

如果您需要在js中进行一些维度计算,则需要在resize上进行操作。仅在此处
var offset=$(this)。hide(500)。offset();
其中
单击的div是这个
#s0 {
    position: relative;
    float: left; 
    height: 570px;
    width: 760px;
    background: #222 url('images/bg.png');
}