【发布时间】:2013-08-24 19:53:58
【问题描述】:
我隐藏了一个 div(在页面底部),这会导致文档的整体高度缩小。
当我在隐藏 div 之前一直向下滚动到页面底部时,Chrome 会正确地将文档底部调整到窗口底部。
当我没有一直向下滚动但在隐藏 div 之前至少在窗口底部边缘下方留下一个像素时,Chrome 不会将文档底部调整到窗口底部。相反,文档缩小并低于 Chrome 的灰色织物背景显示。然后,只要我滚动页面至少一个像素,Chrome 就会再次将文档调整到窗口。
这可以通过 Chrome 的开发工具在任何网站上复制。几乎(!)向下滚动到底部,选择任何元素并设置display:none 或height:0。
我在 OS X 10.8.4 上使用 Chrome 29。这是一个已知的错误吗?
一种解决方法是使用 jQuery 的 scrollTop 函数在隐藏元素后向上滚动一个像素。然后 Chrome 会调整文档。
var y = $(window).scrollTop();
$(window).scrollTop(y-1);
现在,当我想使用 jQuery 的 slideToggle() 隐藏元素时,它变得很棘手。有什么想法吗?
【问题讨论】:
-
能否请您发布您的 HTML、JavaScript 和 CSS 代码?我只是在这个问题页面上将页脚元素设置为“显示:无”,我没有看到 Chrome 行为不端。
-
我这边不需要特定的代码。我在这个网站的页脚元素上也遇到了这种不当行为。确定你没有一直向下滚动?你也在 OS X 上吗?
-
我确定我没有一直滚动到底部,因为我试图重新创建您描述的行为。我不在 OS X 上(我使用的是 Linux),所以这很可能是 OS X 特有的错误。您可能需要将此情况报告给浏览器供应商。
标签: jquery html css google-chrome