如何摆脱不必要的滚动条

时间:2013-05-18 03:09:50

标签: javascript google-chrome safari scroll

我有一个DIV,其中包含一个表,当添加或删除行或列时,该表显然会增大或缩小,当发生这种情况时,必须相应地重新调整容器DIV的大小。如果浏览器的窗口不足以显示整个表格,则DIV必须包含必要的滚动条,否则不应显示滚动条。小菜一碟,不是吗?

在IE 10上,一切工作都和预期的一样好,但是在Chrome和Safari 2中,即使没有必要,也会出现丑陋的滚动条...至少这是我在检查DIV对象属性时理解的内容,我看到了这一点:

this.offsetWidth = 642
this.scrollWidth = 638

所以不需要水平滚动条,对吧?

this.offsetHeight = 420
this.scrollHeight = 416

所以不需要垂直滚动条,对吧?

但即便如此,两个滚动条都会显示...如果我最小化浏览器的窗口然后恢复它,两个滚动条都会消失,就好像浏览器意识到它们没有必要。如果我切换到另一个应用程序然后返回浏览器,并且当我点击我页面上的任何输入字段时,也会发生同样的情况。所以这显然是一个错误,但无法找到解决方法。

我尝试了以下内容:

this.style.overflow = "hidden";
this.style.left = q/2+"px";
this.style.width = v+"px";
this.style.top = p+"px";
this.style.height = i+"px";
this.style.overflow = "auto";

但我仍然有同样的行为。

1 个答案:

答案 0 :(得分:0)

解决!!!

我的鼻子是正确的,但我需要时间才能意识到:

this.style.overflow = "hidden";
this.style.left = q/2+"px";
this.style.width = v+"px";
this.style.top = p+"px";
this.style.height = i+"px";    
if(this.scrollHeight>this.offsetHeight) this.style.overflowY = "auto";
if(this.scrollWidth>this.offsetWidth) this.style.overflowX = "auto";