2013-06-06 64 views
0
頁面上移

有底部的酒吧,CSS:JS功能使所有元素的

#bottom_nav { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    border-top: solid 1px lightgray; 
    background: url('http://localhost:3000/assets/font-try.jpg'); 
    height: 70px; 
    width: 100%; 
    font-family: "ProximaNova", "Helvetica Neue", Helvetica, Arial, sans-serif; 
    font-size: 12px; 
    font-weight: 400;} 

而且一些AJAX的行動有jQuery的功能,防止元素сover底欄:

var $beforeBar= $('#bottom_nav').prev().offset().top; 
    var $beforeBarPosition=$beforeBar+ $('#bottom_nav').prev().height(); 
if($beforeBarPosition+50>=$('#bottom_nav').offset().top){ 

     $('#bottom_nav').css({'top':$(document).height()+100}); 
    } 

問題在於,每次調用此函數時,頁面上的所有元素都會稍微向左移動。看起來真醜。如果我禁用功能,則不會移位。

此外,jsfiddle

編輯:

Yeath,我知道了,它是在不斷變化的文檔高度出現窗口滾動面板。 任何解決方案?

+0

這裏沒有足夠的信息來幫助。 JSFiddle似乎沒有重新創建問題。你能否殺死鏈接網址並在小提琴中測試它,看看你是否得到相同的結果?一旦你可以複製它,我們可以提供幫助。 –

+0

死鏈接,是的,現在它重新創建問題,第一次點擊導致左移,在我的主機權利,但沒關係 –

回答

0

移位通過該線路引起的:

$('#bottom_nav').css({'top':$(document).height()+100}); 

這是設置#bottom_nav元件爲100像素的頂部過去的文檔的末尾...由170像素有效地增加文件的高度( 100px + #bottom_nav的高度)。下次運行此代碼時,從$(document).height()返回的值爲170更高...導致頁面高度再增加170px。

+0

不行,轉移是橫向的,據說是「左轉」。在回答之前可能會閱讀問題是個好主意?無論如何,理由告訴@passerby –

+0

水平轉移是由滾動條出現,這是由文檔長度任意增加引起的。不管怎樣,如果不斷增加的長度是有意或無意的,如果不是這樣,那麼真正的修復應該解決*那*而不是滾動條出現的副作用。 – jcsanyi

相關問題