由于溢出,div不会在滚动上消失:隐藏/自动

时间:2012-05-24 19:35:52

标签: javascript css overflow fade

我有这个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,正文和'内容div',隐藏在html和body上的溢出,以及'content div'上的auto,这个javascript不再有效。

知道为什么这个javascript不起作用?是否有修复或其他方法来执行此操作,以便在滚动时标题淡出?

提前致谢

编辑----

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

较少的CSS小提琴 - http://jsfiddle.net/sturobson/AMJFG/1/

1 个答案:

答案 0 :(得分: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();
};