如何摆脱不需要的滚动条



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

在IE 10上,一切都像预期的那样好,然而在Chrome和Safari 2中,丑陋的滚动条即使在没有必要的时候也会出现…至少这是我理解的当我检查DIV对象属性时我看到这个:

this.offsetWidth = 642
this.scrollWidth = 638
所以不需要水平滚动条,对吧?
this.offsetHeight = 420
this.scrollHeight = 416

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

但即便如此,两个滚动条都显示…如果我最小化浏览器的窗口,然后恢复它,两个滚动条都消失了,就好像浏览器后来意识到它们是不必要的。如果我切换到另一个应用程序,然后返回浏览器,以及当我单击页面上的任何输入字段时,也会发生同样的情况。所以这显然是一个bug,但我还没能想出一个解决办法。

I tried to the following:

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";

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

解决了!!

它就在我的鼻子前面,但我花了很长时间才意识到:

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";

最新更新