2013-04-09 50 views
0

我有以下我的頭代碼,如果它到達窗口的頂部是變粘:置頂標題滾動misfunction

$(function() { 
    var stickyHeaderTop = $('#outer-header').offset().top; 

    $(window).scroll(function() { 
     if ($(window).scrollTop() > stickyHeaderTop) { 
      $('#outer-header').css({ 
       position: 'fixed', 
       top: '-300px' 
      }); 
     } else { 
      $('#outer-header').css({ 
       position: 'static', 
       top: '0px' 
      }); 
     } 
    }); 
}); 

它的工作原理,但是當它到達頂部,變粘的內容滾動正常滾動+在頁眉上方的div的高度(所以它跳得太大,看起來並不平滑)

+1

當然出現這種情況,是因'#外header'不影響當它被設置成'fixed'頁面佈局的其餘部分 - 但它一旦開始,你做將其更改爲「靜態」。你應該在'fixed'和'absolute'之間切換以避免這種情況。 (可能需要進一步修改。) – CBroe 2013-04-09 15:08:53

+0

非常感謝!我現在解決了這個問題,finnaly:D – Vloxxity 2013-04-09 15:54:57

回答

0

感謝CBroe的提示! 這是一個可行的解決方案:

$(function() { 
    var stickyHeaderTop = $('#outer-header').offset().top; 

    $(window).scroll(function() { 
     if ($(window).scrollTop() >= stickyHeaderTop) { 
      $('#outer-header').css({ 
       position: 'fixed', 
       top: '-300px' 
      }); 
      $('#main').css({ 
       position: 'relative', 
       top: '332px' 
      }); 
     } else { 
      $('#outer-header').css({ 
       position: 'absolute', 
       top: '0px' 
      }); 
      $('#main').css({ 
       position: 'relative', 
       top: '332px' 
      }); 
     } 
    }); 
});