2012-07-31 78 views
3

如果您已經創建了每個動態頁面,您可能會注意到,如果您始終使用不需要滾動條的頁面高度,然後動態添加內容,則會出現滾動條。當它這樣做時,它會將我的所有內容「推」到滾動條的左側,看起來頁面上的所有內容都會跳轉一點。是否有可能使滾動條位置:絕對?

是否有可能使滾動條像絕對位置一樣操作,以便不會將我的內容全部推送到左側,而只是覆蓋內容。我不喜歡內容全部「跳」到左邊的方式;它看起來很討厭。

謝謝

+0

您可以使用'window.resize'事件處理程序通過比較'document'和'window'的高度來檢測何時需要滾動條,根據需要在主體中添加或刪除一些右邊距,但這是一個JavaScript的解決方案,並在實踐中有點混亂 – jackwanders 2012-07-31 20:28:41

回答

1

你可以,但它不會是完美的。從this後複製代碼:

// Used like $('#my-id').hasScrollbar(); 

jQuery.fn.hasScrollbar = function() { 
var scrollHeight = this.get(0).scrollHeight; 

//safari's scrollHeight includes padding 
if ($.browser.safari) 
    scrollHeight -= parseInt(this.css('padding-top')) + parseInt(this.css('padding-bottom')); 

if (this.height() < scrollHeight) 
    return true; 
else 
    return false; 
} 

可以查詢,看是否滾動條是存在的。在此之前,然而,你將有一個全局變量,那就是視口的寬度之前出現的滾動條:

var viewportWidth = $(window).width(); 

並運行上述功能後,你可以使用的新視口寬度比較這viewportWidth用滾動條的窗口,和margin-rightbody的負數的差異。

+0

我其實想到最初這樣做,但如果可能的話想要一個CSS解決方案。看起來像沒有可用的,所以我可能會使用你的方法。謝謝 – 2012-07-31 20:19:47

0

你問的問題無法做到。

你可以然而,迫使它出現在任何時候都:

#id { 
    overflow: scroll; 
} 

但是,這是可怕的醜陋。