2013-05-18 39 views
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"; 

,但我仍然獲得相同的行爲。

+0

什麼其他的樣式在玩,我知道有很多樣板代碼確保滾動條一直存在,以避免由於滾動條,當您從簡短頁面跳到長頁面時,該網站會跳躍。 – Orangepill

+0

你嘗試過溢出嗎? – Sanjeev

回答

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