私のヘッダーは中央に920pxの幅に設定されており、ヘッダーの下のコードを使用すると固定され、ユーザーがスクロールすると不透明度が変わります。変更が瞬時に発生する場合でも、目的の効果はかなり簡単に達成できました。変更を所定の位置にフェードインさせることができるかどうか疑問に思っていますか?運が悪かったので、CSS3トランジションを使ってみました。
<script>
$(function() {
// grab the initial top offset of the navigation
var sticky_navigation_offset_top = $('header').offset().top;
// our function that decides weather the navigation bar should have "fixed" css position or not.
var sticky_navigation = function(){
var scroll_top = $(window).scrollTop(); // our current vertical position from the top
// if we've scrolled more than the navigation, change its position to fixed to stick to top,
// otherwise change it back to relative
if (scroll_top > sticky_navigation_offset_top) {
$('header').css({ 'position': 'fixed', 'position': 'fixed', 'opacity':0.8, 'top':0, 'left':0 });
} else {
$('header').css({ 'position': 'relative' });
}
};
// run our function on load
sticky_navigation();
// and run it again every time you scroll
$(window).scroll(function() {
sticky_navigation();
});
});
</script>
ありがとう。