javascript - 滚动时如何在菜单栏下隐藏日历
问题描述
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
margin: 0;
background-color: #f1f1f1;
font-family: Arial, Helvetica, sans-serif;
}
#navbar {
background-color: #333;
position: fixed;
top: 0;
width: 100%;
display: block;
transition: top 0.3s;
}
#navbar a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 15px;
text-decoration: none;
font-size: 17px;
}
#navbar a:hover {
background-color: #ddd;
color: black;
}
</style>
</head>
<body>
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<br />
<input id="datetimepicker" type="text" >
<div id="navbar">
<a href="#home">Home</a>
<a href="#news">News</a>
<a href="#contact">Contact</a>
</div>
<div style="padding:15px 15px 2500px;font-size:30px;margin-top:30px;">
<p><b>This example demonstrates how to hide a navbar when the user starts to scroll the page.</b></p>
<p>Scroll down this frame to see the effect!</p>
<p>Scroll up to show the navbar.</p>
<p>Lorem ipsum dolor dummy text sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<p>Lorem ipsum dolor dummy text sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<script>
$(function(){
$('#datetimepicker').datetimepicker({
inline:true,
});
})
var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
document.getElementById("navbar").style.top = "0";
} else {
document.getElementById("navbar").style.top = "-50px";
}
prevScrollpos = currentScrollPos;
}
</script>
</body>
<!-- XDSoft DateTimePicker -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css" integrity="sha256-DOS9W6NR+NFe1fUhEE0PGKY/fubbUCnOfTje2JMDw3Y=" crossorigin="anonymous" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.full.min.js" integrity="sha256-FEqEelWI3WouFOo2VWP/uJfs1y8KJ++FLh2Lbqc8SJk=" crossorigin="anonymous"></script>
</html>
- 我在 Django 中使用以下日历: https ://xdsoft.net/jqplugins/datetimepicker/
- 问题是当向下滚动页面时,月历和年历组件会越过我的菜单栏。有办法解决这个问题吗?也许要覆盖日历或我的 HTML/Javascript 中的一些 css?
- 我在 w3school 的 HTML 示例中重现了我的场景。见代码被剪断。
解决方案
不需要为内联日历设置如此高的 z-index 值,因为它不像默认日历那样显示在日期字段上。
而不是像月份和年份的下拉菜单那样使用
z-index: 9999
。z-index: 101
解决方案是覆盖日历的 css:<script> .xdsoft_datetimepicker .xdsoft_label { z-index: 101 !important; } </script>
推荐阅读
- python - Pyspark 计算一个项目在数据框中不同日期出现的次数
- vba - 根据打开的工作簿设置工作簿
- git - 从提交历史记录中删除大于 100MB 的文件 - 迁移到 Github 失败
- flutter - 如何保存一个字符串的每个键/数据,该字符串具有多个共享优先级的键/数据?
- javascript - Visual Studio 代码“Cick-Through / Go-To”不适用于 jsconfig.json(和 Next.js)中的路径别名
- javascript - 如何将类名作为参数传递并调用 GWT jsni 中的常用静态方法?
- python - 如何使用 Python 测试 timescaledb 数据库
- wordpress - php更新后Wordpress ajax 500错误
- kubernetes - 仅使用 REST API 访问 kubernetes 集群详细信息,例如命名空间及其 pod 和 pod 映像
- azure - 如果数据保留期超过 90 天,Azure Insights 的费用是多少?