html - #section 在页面顶部时显示元素
问题描述
#header
一旦我section#about
的顶部到达页面/视口的顶部,我需要显示我的元素。
所以在基本方面:
如果section#about
在offset > 1
展会上#header
我目前正在使用以下 jQuery 来控制#header
550 像素的显示,但我需要更精确,因为更大的屏幕将达到不同的像素测量值(因此需要根据部分何时到达顶部来触发)。
$("#header").hide();
$(window).scroll(function() {
if ($(window).scrollTop() > 550) {
$("#header").fadeIn("slow");
}
else {
$("#header").fadeOut("fast");
}
});
解决方案
我认为这应该有效:
$(document).ready(function() {
var aboutOffset = $('#about').position();
var header = $("#header");
console.log(aboutOffset);
$(window).scroll(function() {
console.log($(window).scrollTop());
if ($(window).scrollTop() > aboutOffset.top - header.height()) {
if (!header.is(':visible')) {
$("#header").fadeIn("slow");
}
}
else {
if (header.is(':visible')) {
$("#header").fadeOut("fast");
}
}
});
});
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<header id="header" style="display: none; position: fixed;">HEADER AAAA</header>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<section id="about">
ABOUT SECTION
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</section>
推荐阅读
- javascript - TypeError:无法读取未定义的属性“getText” - Protractor Typescript
- jquery - Bootstrap - 通过超链接跳转到特定选项卡
- javascript - 使用 node.js 从 Google Cloud 函数中的 IncomingMessage 对象读取正文
- scala - scala:为什么代码返回 List [Any] 而不是 List [String]?
- android - java命令在Android中位于哪里?
- angular - 尝试在服务外使用 forEach() 或 map() 时,subscribe() 内的数组为空,但在服务中填充
- google-cloud-platform - 坚持将 GCP 项目转移到组织
- c# - 如何从文本中制作一个自动空白框?
- python - 未创建通过循环的列表
- flutter - Flutter/Dart:连接整数