我正在检查和比较body.offsetHeight和body.scrollHeight。
缩放窗口大小总是抛出相同的值,但是缩小窗口有时会导致“跳转”值,因此我在Div上得到了一个闪烁。在Chrome 45和Firefox上进行了测试。
var body = document.body,
html = document.documentElement,
offset,
scroll;
$(window).resize(function() {
offset = Math.max(body.offsetHeight, html.offsetHeight);
scroll = Math.max(body.scrollHeight, html.scrollHeight);
if (offset === scroll) {
$(".myDiv").css("height", (offset - 155) + "px");
} else {
$(".myDiv").css("height", "");
}
}).trigger("resize");这是怎么回事?有人能跟我解释一下我做错了什么吗?
编辑:在线演示,说明我的问题:http://jsfiddle.net/magic77/41bq62xs/
或http://20thcenturyinterior.com/test/test.html
发布于 2015-09-28 08:51:54
这看起来是一个简单的四舍五入的问题。offset是四舍五入的,而scroll是四舍五入的,所以1是不同的。您可以简单地解决这个问题:
if (Math.abs(offset - scroll) <= 1) {
$(".myDiv").css("height", (offset - 155) + "px");
} else {
$(".myDiv").css("height", "");
}这是一个解决办法,正确的方法是在任何情况下使用CSS。你可以问另一个问题,你的具体问题,标记为CSS。
https://stackoverflow.com/questions/32812997
复制相似问题