2011-07-22 238 views
1

我有滾動頁面鏈接打開thickbox。如何隱藏滾動(溢出:隱藏)?

(見例如landme.ru/scroll-bug/

我想ThickBox的打開時隱藏垂直滾動,並留在頁面的底部。 將'overflow:hidden'屬性應用於'body'標記不會在ie7中工作 。如果我用這個屬性「HTML」標籤,頁面內容是 向上滾動前滾動將被隱藏

對不起,我的英語

UPD:同時我用這樣的代碼:

CSS:
.noscroll{overflow:hidden;}

JS:

if (($.browser.msie) && ($.browser.version == '7.0')) { 
    $('html').addClass('noscroll'); 
} else { 
    $('body').addClass('noscroll'); 
} 

它的工作原理,但我還是想知道,如果有任何其他的方法

+1

我明白你想要什麼,但這對用戶來說真的很煩人。我想你可能會問我爲什麼要告訴用戶他們不能或可以滾動。我當然不希望我的滾動條消失。 –

+0

我的密箱中有很多內容,我需要在thickbox內滾動,而不是滾動所有頁面。 –

+0

商業邏輯不是這裏的問題...沒有真正的理由說明爲什麼我們需要知道海報爲什麼要這樣做:P –

回答

0

確定,所以這個問題是高度。你不能只是指定隱藏在包裝上的溢出,因爲它不知道在哪裏停止。用位置的style屬性將div包裹在div中; relative;高度:100%;然後給包裝的溢出風格:隱藏;身高:100%;位置:絕對;

最後你需要所以它的底部滾動它。

document.getElementsByClassName("wrap")[0].scrollTop = document.getElementsByClassName("wrap")[0].scrollHeight 

和你有它:)

測試用例這裏: http://jsbin.com/eguhuj#html

有滾動條的一點點,但那是因爲jsbin的。在一個html文檔中它看起來很完美。

編輯:updateed代碼...我們可以測試這個,看看它的工作原理首先...你可以把這個在你的錨元素?

onclick="(function(){var blah = document.getElementsByClassName("wrap")[0]; 
document.getElementsByClassName("wr")[0].style.position = "absolute"; 
var meh = document.body.scrollTop; 
blah.style.overflow = "hidden"; 
blah.style.height = "100%"; 
blah.style.position = "absolute"; 
blah.scrollTop = meh;})();" 
+0

這隱藏了頁面上的所有內容(請參閱演示)。 此外,頁面不應該簡單地移動。 它不一定是頁面底部,鏈接可以在頁面的中間例如 –

+0

確定...發現我的錯誤....看到我的編輯 –

+0

上面的代碼的行爲奇怪。 執行後重新加載頁面。 同時我用這樣的代碼: CSS: '.noscroll {溢出:隱藏;}' JS: '如果(($ .browser。msie)&&($ .browser.version =='7.0')){('html')。addClass('noscroll'); } else { $('body')。addClass('noscroll'); }' 它的工作原理,但我仍然想知道,如果有任何其他方法 –