2014-09-18 42 views
0

我想將2個側邊欄對齊到右側隱藏的位置。我希望當用戶從右側邊欄點擊一個按鈕時,邊欄應該消失到正確的位置,並且新的邊欄應該與CSS動畫片同時出現。Css「right」減去數值而不延長滾動區域?

如果我使用right:-50px這擴展了可滾動區域。如果我使用寬度的容器,這仍然可以擴展可滾動區域。

請參閱:http://jsfiddle.net/oz62o2yd/2/ < - 這是剛剛減去價值,來到屏幕區域。

http://jsfiddle.net/oz62o2yd/3 < - 在這裏我使用了一個容器,但是這並不能阻止製作滾動條的頁面。

我不想只是「隱藏」滾動條,但也禁用它們。

如果我需要爲此使用JavaScript,那麼我也可以。

+0

http://jsfiddle.net/oz62o2yd/3/ < - 這裏是我的意思後,但這樣的事實,我想不出由於第二連桿1個代表 – S00 2014-09-18 22:04:26

回答

0

我固定它使用

window.onscroll = function() { window.scrollTo(0, 0); }; 

事情是,我使用的WebGL/three.js所和three.js所,當全屏有在某些(大多數)分辨率屏幕的底部一個非常小的邊界。要修復邊框,你必須顯示:block,當你有顯示:包含其他元素和大量絕對位置的塊時,寬度:100%意味着畫布將進入「第二頁」

「overflow:hidden 「在IE11上的body標籤和/或容器上工作,但由於結構複雜(很複雜,順便說一句),而不是在鉻/金絲雀/夜間和熟悉的瀏覽器上,並且因爲同一頁面上有jQuery UI,這也意味着如果我想在頁面啓動時顯示一個對話框,「容器」不會包含所有元素作爲jQuery UI在body標籤中創建的元素,所以這也意味着我必須編輯jQuery(這是OK)

上面的js標籤工作在所有現代瀏覽器中完美無瑕,但在我沒有瞄準的舊版瀏覽器中卻非常活躍。

1

由於基於流的佈局的性質,瀏覽器的文檔大小將始終按照需求向右和向下增長。因此,渲染「超出正確邊界」的東西確實會導致滾動條向右。

根據您的具體情況,可能會有多種解決方案。最簡單的是簡單地禁用水平的溢出:

body { 
    overflow-x:hidden; 
} 

其中實際上fix your fiddle。對於更復雜的情況,這可能是不夠的。然後,您可以選擇將有問題的元素包裝在絕對定位的父級中,該父級保留在現有範圍內,並且本身限制了其設置。

+0

這對我不起作用,它隱藏滾動條,但你可以仍然通過中間點擊頁面滾動。什麼是其他解決方案? – S00 2014-09-18 22:24:56