0

我有这个 JavaScript

$(window).load(function(){
var $menu = $("header");
var opacity = $menu.css("opacity");
var scrollStopped;

var fadeInCallback = function () {
    if (typeof scrollStopped != 'undefined') {
        clearInterval(scrollStopped);
    }

    scrollStopped = setTimeout(function () {
        $menu.animate({ opacity: 1 }, "slow");
    }, 1400);
}

$(window).scroll(function () {
    if (!$menu.is(":animated") && opacity == 1) {
        $menu.animate({ opacity: 0 }, "200", fadeInCallback);
    } else {
        fadeInCallback.call(this);
    }
  });
});

它可以很好地隐藏滚动标题,但增加了一些高度:100%;到 html、body 和 'content div',在 html 和 body 上隐藏溢出,在 'content div' 上自动显示此 javascript 不再有效。

知道为什么这个 javascript 不起作用吗?是否有修复或其他方法可以使标题在滚动时淡出?

提前致谢

编辑 - -

一个 JsFiddle - http://jsfiddle.net/sturobson/AMJFG/

具有较少 CSS 的较新 Fiddle - http://jsfiddle.net/sturobson/AMJFG/1/

4

1 回答 1

0

你的脚本对我有用。

但是,如果您想尝试另一种方法,请根据您的方法尝试以下方法,但稍微简化:

$(document).ready(function(){
    headerFade();
});
function headerFade() {
    var $menu = $("header"),
        opacity = $menu.css("opacity"),
        scrollStopped,
        methods = {
            init: function(){               
                $(window).scroll(function () {
                    (!$menu.is(":animated") && opacity == 1) ? $menu.fadeOut(200, methods.fadeInCallback()) : methods.fadeInCallback();                 
                });             
            },
            fadeInCallback: function(){             
                clearInterval(scrollStopped);                               
                scrollStopped = setTimeout(function () {
                    $menu.fadeIn(600);
                }, 1400);
            }
        };  
    methods.init();
};
于 2012-05-24T20:26:33.007 回答