Div fadeIn/Out 滚动 + 页面顶部可见性
Div fadeIn/Out on scroll + visibility on top of page
我目前正在使用:
<script>
$(window).scroll(
{
previousTop: 0
},
function () {
var currentTop = $(window).scrollTop();
if (currentTop < this.previousTop) {
$("#menu").fadeIn();
} else {
$("#menu").fadeOut();
}
this.previousTop = currentTop;
});
</script>
让我的页面菜单在向下滚动时淡出,在向上滚动时淡入,这很有效。不起作用的是,当我位于页面顶部时,我需要始终可见。
我找到的唯一解决方案是禁用滚动解决方案上的淡入淡出 in/out,我正在尝试找到一个两者都可以协同工作的解决方案。前任。滚动顶部 200px 时始终可见,但在滚动 up/down 上具有淡入淡出 in/out 的功能。有什么建议么?谢谢!
我建议您在页面顶部添加一个类名。然后你可以用 css 设置它的样式,使其始终在顶部可见。
<script>
$(window).scroll(
{
previousTop: 0
},
function () {
var currentTop = $(window).scrollTop();
if ( currentTop == 0 ) {
$("#menu").addClass('static-on-top');
} else {
$("#menu").removeClass('static-on-top');
if (currentTop < this.previousTop) {
$("#menu").fadeIn();
} else {
$("#menu").fadeOut();
}
}
this.previousTop = currentTop;
});
</script>
<style type="text/css">
.static-on-top {
display: block !important;
}
</style>
我编辑并试用了代码。
最好的解决方案是删除 fadeOut:
<script>
$(window).scroll(
{
previousTop: 0
},
function () {
var currentTop = $(window).scrollTop();
if ( currentTop == 0 ) {
$("#menu").addClass('static-on-top');
} else {
$("#menu").removeClass('static-on-top');
if (currentTop < this.previousTop ) {
$("#menu").fadeIn();
} else {
$("#menu").hide();
}
}
this.previousTop = currentTop;
});
</script>
<style type="text/css">
.static-on-top {
display: block !important;
}
#menu {
position: fixed;
height: 30px;
background: red;
width: 100%;
top: 0;
left: 0;
}
</style>
<div id="menu">
Menu
</div>
我目前正在使用:
<script>
$(window).scroll(
{
previousTop: 0
},
function () {
var currentTop = $(window).scrollTop();
if (currentTop < this.previousTop) {
$("#menu").fadeIn();
} else {
$("#menu").fadeOut();
}
this.previousTop = currentTop;
});
</script>
让我的页面菜单在向下滚动时淡出,在向上滚动时淡入,这很有效。不起作用的是,当我位于页面顶部时,我需要始终可见。
我找到的唯一解决方案是禁用滚动解决方案上的淡入淡出 in/out,我正在尝试找到一个两者都可以协同工作的解决方案。前任。滚动顶部 200px 时始终可见,但在滚动 up/down 上具有淡入淡出 in/out 的功能。有什么建议么?谢谢!
我建议您在页面顶部添加一个类名。然后你可以用 css 设置它的样式,使其始终在顶部可见。
<script>
$(window).scroll(
{
previousTop: 0
},
function () {
var currentTop = $(window).scrollTop();
if ( currentTop == 0 ) {
$("#menu").addClass('static-on-top');
} else {
$("#menu").removeClass('static-on-top');
if (currentTop < this.previousTop) {
$("#menu").fadeIn();
} else {
$("#menu").fadeOut();
}
}
this.previousTop = currentTop;
});
</script>
<style type="text/css">
.static-on-top {
display: block !important;
}
</style>
我编辑并试用了代码。 最好的解决方案是删除 fadeOut:
<script>
$(window).scroll(
{
previousTop: 0
},
function () {
var currentTop = $(window).scrollTop();
if ( currentTop == 0 ) {
$("#menu").addClass('static-on-top');
} else {
$("#menu").removeClass('static-on-top');
if (currentTop < this.previousTop ) {
$("#menu").fadeIn();
} else {
$("#menu").hide();
}
}
this.previousTop = currentTop;
});
</script>
<style type="text/css">
.static-on-top {
display: block !important;
}
#menu {
position: fixed;
height: 30px;
background: red;
width: 100%;
top: 0;
left: 0;
}
</style>
<div id="menu">
Menu
</div>