我的网站有一个介绍div占据整个视口,其下方有一个导航菜单。
我试图创建一个功能,一旦滚动它就会隐藏此介绍div。我还需要一个函数来将浏览器滚动到顶部,因为这个div被隐藏了。
我已经创造了这样一个功能,但却产生了一个问题:
强制滚动到顶部的函数部分保持触发,不会让你滚动经过div我用作锚点。我尝试了一些不同的解决方案,让每个会话只启动一次,但我无法工作。
我问的是,我怎么能只做一次火?或者我应该尝试不同的方法? .postfold_container_01
是我试图隐藏的.prefold_wrapper
div下的导航菜单容器。
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= $(".postfold_container_01").offset().top) {
$(".prefold_wrapper").addClass("hide");
window.scrollTo(0, 0);
} else {
}
});
答案 0 :(得分:1)
你可以尝试使用外壳为你的功能提供一个布尔"完成" value,然后在if语句中使用它。像这样:
var hideAndScrollOnce = (function () {
var done = false;
return function () {
var scroll = $(window).scrollTop();
if (scroll >= $(".postfold_container_01").offset().top && !done) {
$(".prefold_wrapper").addClass("hide");
window.scrollTo(0, 0);
done = true;
}
}
})();
$(window).scroll(hideAndScrollOnce);
答案 1 :(得分:0)
您可以尝试简单地将条件更改为:if (scroll >= $(".postfold_container_01").offset().top && !$(".prefold_wrapper").hasClass("hide")) {