2011-08-03 72 views
6

我有一個頁面,我不希望用戶能夠滾動。爲了防止它,我只是設置身體有一個隱藏的溢出風格。這足以讓用戶嘗試選擇一些文本,然後拖到最下面。隨後窗口隨着用戶拖動而滾動。我怎樣才能防止這一點?選擇/拖動文本時停止滾動頁面

+2

如果你發佈你使用的是當前的代碼,你會得到更好的反應。如果你可以使用像http://jsfiddle.net這樣更好的東西創建一個實例。 – tw16

+0

我認爲你的方法有點有缺陷,如果你不想讓用戶看到某些東西不顯示它,或者如果你需要一些奇怪的黑客使用顯示的某些數據:沒有CSS或隱藏的輸入字段。試圖阻止基本的基本瀏覽器功能是可用性災難的祕訣。 – Louis

+0

對於我有缺陷的方法,我表示歉意。在某些時間點,在動畫過程中,div會使用CSS變換進行縮放,從而跨越可見區域。在這些時刻,用戶的拖拽將它們帶出期望的視野區域。我只是希望在這個選擇/拖拽過程中發生了一些我可以攔截的事件。 – rewolf

回答

17

使用position: fixed;。如果你想整個身體爲非滾動:

body 
{ 
    position: fixed; 
} 

編輯:接收來自用戶山姆評論之後,我決定回去,再次測試此方法。現在,我重新考慮它與山姆的關注,就亂用的風格,我得出的結論是,以下將是一個更好的解決方案:

html 
{ 
    position: fixed; 
    width: 100%; 
    height: 100%; 
} 

的可防止結束了左邊的一些網站(包括計算器)對齊。它也使用可用的最高節點,本應該首先完成。

+10

我想吻你。 no homo – rewolf

+2

O_o我會以「男人擁抱」的方式帶走它。 –

+0

對移動設備不太有用,因爲它添加了Safari瀏覽器地址欄。 –

2

我試過約瑟夫答案,但它可以搞亂網站上的很多風格。

另一種方法是將網站的溢出設置爲隱藏,這也遠非理想,但它並沒有混淆我的任何樣式,希望這對某人有幫助。

body { 
    overflow-y: hidden;  
} 
+0

這在我看來是更正確的解決方案。 「overflow」直接處理頁面的滾動。雖然這並不能糾正原始海報在突出顯示文本時的移動問題,但它在很多需要防止滾動需求的情況下都應該有所幫助。 –

+2

是的,我已經提到這個(在我的問題),作爲我一直使用,直到我試圖選擇文本。 – rewolf

+0

哦,我,我完全誤讀了這個問題,忙着尋找答案。對不起我的壞 – Samuel

2

它可以是有益的

html 
{ 
    overflow: hidden; 

} 
+1

這實際上是危險的,因爲它會隱藏滾動條,並給你錯誤的感覺,身體是不可滾動的。這不會阻止用戶在拖動任何選定文本時滾動頁面。 –