2011-12-10 57 views
0

我有一個使用對話框的網站。當我打開對話框時,body滾動條被隱藏,並且包含該對話框的div的滾動條顯示其滾動條。如何在不滾動內容的情況下移除滾動條?

但是,當我隱藏body滾動條時,內容移動到開始位置。打開對話框時如何保持內容的位置?

有關此問題的更多信息,請查看Facebook上的照片。當你點擊一張照片時,我喜歡這樣做。

+2

莫非它會滾動到頂部,因爲您點擊的鏈接有一個(可能是空的)URL片段標識符,如:'...'...並且處理「對話框」的JavaScript不取消事件? –

+0

如何向我們展示代碼片段? http://jsfiddle.net/ – moey

+0

你是說由於添加的額外寬度通過移除滾動條而釋放,視口滾動回到主體內容的頂部,或者主體內容本身向上移動? – Aaron

回答

0

你可以給我們你正在使用的代碼或鏈接到你正在談論的網站嗎?你怎麼隱藏滾動條?

如果是通過將overflow樣式屬性更改爲隱藏,那麼我是否正確猜測這隻會在第一次顯示對話框時出現,並且對話框的後續顯示不會將內容移回頂端?如果是這樣,我不知道最好的方法來防止這種情況,但快速入侵將是讓您的JavaScript分配'身體的容器div的溢出風格屬性加載時自動。

以下添加到您的JavaScript的頂部:

window.onload = function() 
{ 
    document.getElementById('container').style.overflow = 'auto'; 
} 

,其中容器是包含你的「身體」代碼的div ID。


-1

等等,我無法理解你的問題。如果你想隱藏滾動條,使用CSS來隱藏它們。

<style type="text/css"> 
    selector { 
    overflow: hidden; 
    } 
</style> 
0

嘗試使用JavaScript來滾動移動到另一個位置: document.getElementById('container').scrollTop = 50;

上面會滾動條50pix移動到頂部,並且可以通過獲得最大滾動高度: document.getElementById('container').scrollHeight

相關問題