【发布时间】:2015-08-17 00:32:58
【问题描述】:
目前我有一个标题,在滚动一定数量的像素后,它会动画(挤压)到具有不同徽标和不同导航的较小版本。如果用户向上滚动超过该像素量(在本例中为 170),则标题将扩展回其正常状态。现在(因为网站上有一些很长的页面)我的客户希望在用户向上滚动的任何时候“扩展”标题。我想我已经接近了,但是当我开始向上滚动页面时,这些事件正在触发无数次。这是我当前的 javascript:
function squishHeader() {
compactHeader = true;
header.animate({height: '48px'}, 500);
mainNav.fadeOut("fast");
logo.fadeOut("fast");
scrollLogo.delay(300).slideDown("fast");
if (overlayIsVisible == true) {
overlay.fadeOut("slow");
overlayIsVisible = false;
}
}
function expandHeader() {
compactHeader = false;
header.animate({height: '130px'}, 100);
scrollLogo.css("display", "none");
logo.fadeIn("slow");
mainNav.delay(300).fadeIn("fast");
}
var compactHeader = false;
var lastScrollTop = 0;
$(window).on('scroll', function() {
if (win.width() > 1024) {
scrollPosition = $(this).scrollTop();
if (scrollPosition >= 170 && !compactHeader) {
squishHeader();
}
else if (scrollPosition < 170 && compactHeader) {
expandHeader();
}
else if ( scrollPosition < lastScrollTop && compactHeader){
expandHeader();
}
lastScrollTop = scrollPosition;
}
});
有人可以帮我解决这个问题,这让我发疯了!提前致谢
【问题讨论】:
标签: javascript jquery function jquery-animate scrolltop