html和body标签上的负边距 - 顶部无效

时间:2016-08-03 07:35:15

标签: html css document-body

我正在尝试在打开对话框时从页面中删除垂直滚动,它会发生jQuery UI模型对话,但我不认为这是相关的。

我正在做的是:

var scrollTop = $(window).scrollTop();
$("html, body").css({ "overflow-y": "hidden", "margin-top": (0-scrollTop) + "px" });

了解页面的滚动位置,然后将其设置为页面顶部的负边距,同时隐藏滚动区域外的垂直内容。

此代码正确地将负边距作为内嵌样式写入html和body标记:

<html style="margin-top: -420px; overflow-y: scroll;" xmlns="http://www.w3.org/1999/xhtml">
    <head></head>
    <body style="margin-top: -420px; overflow-y: scroll;">
    </body>
</html>

然而,它对页面的内容没有任何影响,它仍然可以很好地与窗口顶部齐平。

有谁知道这是为什么?

修改 基于下面的评论,我决定切换代码,为页面添加一个正边距,看看它有什么效果,假设它会在我的页面顶部添加一大块空白空间。

它实际上做的是首先实现我正在寻找的东西。

我现在拥有的是:

var scrollTop = $(window).scrollTop();
$("html, body").css({ "overflow-y": "hidden", "margin-top": (scrollTop) + "px" });

它有效,删除垂直滚动条并保留滚动位置。

任何人都可以解释为什么当逻辑表明需要负数时,正偏移是有效的吗?

0 个答案:

没有答案