onScroll事件没有触发else {}函数

时间:2013-06-24 16:38:28

标签: javascript jquery html scroll

我正在尝试运行一个简单的“onScroll do something”功能。

当访问者从顶部窗口位置滚动超过20px时,标题应缩小(与其内容一起)。 当访问者滚动回到顶部(或<20px)时,标题应该返回到原始大小(自动)。

出于某种原因,我所做的一切似乎都在起作用。标题(和内容)收缩很好,但函数的else {}部分不会触发。标头大小不会改变。这就像if {}部分中的大小会覆盖其他所有内容。

我只想制作一个简单的固定标题栏,一旦向下滚动页面就缩小(最小化),如果你回到顶部则翻转回原始大小。

我很感激任何帮助!非常感谢!

HTML:

<header>
    <img src="http://froggyadventures.com/wp-content/uploads/galleries/post-93/full/placeholder%20-%20Copy%20(3).gif" />
</header>
<section>
    <p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</section>

JS:

$(window).scroll(function () {
    var topW = $(window).stop().scrollTop();
    if (topW > 20) {
        $('header').animate({"height": "15%"}),
        $('header img').css({"height": "10%","width": "10%"});
    } else {
        $('header').animate("height", auto);
    }
});

Demo Fiddle — http://jsfiddle.net/jwarddesign/NphFw/3/

1 个答案:

答案 0 :(得分:0)

我不认为可以设置为“自动”高度的动画。

您可以在运行该功能之前保存高度,然后可以将其设置为该高度的动画。

// Get the height
var h = $('header').outerHeight();

// Animate to the stored height
$('header').animate({"height": h})

http://jsfiddle.net/NphFw/22/