【发布时间】:2018-04-04 11:44:13
【问题描述】:
我有一个在页面加载时位置固定的容器,它的高度等于窗口高度。它必须定位为“固定”(?),因为当滚动大于 1px 时会弹出带有文本的叠加层,并且它们的高度都必须等于窗口高度。 如果 scrollTop 大于窗口高度的一半,页面会自动滚动到下一部分,并从该容器中删除固定位置。
代码如下:
$(window).on('scroll.a', function () {
var windowHeight = $(window).outerHeight();
var scrollTopMask = $(window).scrollTop();
var slideAfter = windowheight/2;
if (scrollTopMask > slideAfter) {
$('.container').addClass('not-fixed');
$('html, body').animate({
scrollTop: $('#nextSection').offset().top
}, 700);
$(window).off('scroll.a');
} else if (scrollTopMask < slideAfter) {
$('.container').removeClass('not-fixed');
}});
问题是我必须off()滚动函数才能在函数执行并满足条件后继续滚动。当scrollTop === 0 和用户再次向下滚动时,有什么方法可以重新启动功能?
【问题讨论】: