0

我有一个 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";

但我仍然得到相同的行为。

4

1 回答 1

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";
于 2013-05-20T17:47:31.013 回答