1

我正在尝试运行一个简单的“onScroll 做某事”功能。

当访问者从顶部窗口位置滚动超过 20 像素时,标题的大小应该会缩小(连同它的内容一起)。当访问者滚动回顶部(或<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);
    }
});

演示小提琴— http://jsfiddle.net/jwarddesign/NphFw/3/

4

1 回答 1

0

我认为动画到“自动”高度是不可能的。

您可以在运行该函数之前保存高度,然后您可以将其设置回该高度。

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

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

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

于 2013-06-24T17:49:33.917 回答