document.addEventListener("DOMContentLoaded", function() {
window.addEventListener("scroll", function() {
var menu = document.getElementById("menu");
var scrollPosition = window.scrollY;
var windowHeight = window.innerHeight;
var documentHeight = document.body.offsetHeight;
var scrollThreshold = documentHeight - windowHeight - 200; // Adjust this value to determine when the menu should become part of the flow
if (scrollPosition > scrollThreshold) {
menu.classList.add("scrolling-menu");
} else {
menu.classList.remove("scrolling-menu");
}
});
});
<!DOCTYPE html>
<html>
<head>
<title>Sticky Bottom Menu</title>
<style>
.content {
position: relative;
}
#bottom-menu {
position: sticky; /*this will fix the menu position*/
bottom: 25px; /*this will give the menu offset from bottom position when menu is sticky*/
height: 50px;
background-color: #DDD;
border-radius: 5px;
margin-left: 30%;
margin-right: 30%;
}
footer {
height: 200px;
background: #555;
margin-top: 25px; /* this margin will work when sticky nav becomes static*/
}
</style>
</head>
<body>
<div class="content">
<p>text...</p>
<p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p><p>text...</p>
<nav id="bottom-menu">
<!-- Menu items go here -->
</nav>
</div>
<footer></footer>
</body>
</html>
2条答案
按热度按时间j5fpnvbx1#
我刚刚在https://imgur.com/a/YFcfO3N的开发人员控制台中看了一下,似乎他们使用了一个带有类“Footer-wrapper”的页脚容器,并具有以下CSS属性:
向下滚动时,容器中会添加另一个类“down”:
负位置必须与页脚/菜单的高度相对应。
我想,他们是用JavaScript做的。你可以在JavaScript中检查用户是否在页面的顶部,如下所示:
类可以像这样添加到元素中:
然后像这样去掉
编辑:对不起,我首先误解了这个问题,但是你想要达到的目标也是可以用类似的方式实现的。让我们看看这个菜单示例:
使用此CSS
这个JavaScript
应该可以。
n1bvdmb62#
要将菜单保持在页面底部并在向上滚动时保持不变,可以将菜单位置设置为
position: sticky;
下面是更新后的示例代码
在更新后的代码中,我将菜单放在了滚动内容的底部,所以它将浮动在底部,直到滚动位置到达内容的底部
希望这符合你的要求!