Javascript 位置固定但仍可滚动?
是否可能有一个DIV位置:fixed,但是如果该DIV的内容超出了屏幕的查看区域,那么您仍然可以使用窗口滚动?到目前为止,我已经把我所有的东西都放在这 这段代码位于一个媒体查询中,当屏幕达到最大宽度和/或最大高度时会触发该查询,但我认为这段代码与我的问题无关。这是我认为需要修改才能正确工作的代码:Javascript 位置固定但仍可滚动?,javascript,css,Javascript,Css,是否可能有一个DIV位置:fixed,但是如果该DIV的内容超出了屏幕的查看区域,那么您仍然可以使用窗口滚动?到目前为止,我已经把我所有的东西都放在这 这段代码位于一个媒体查询中,当屏幕达到最大宽度和/或最大高度时会触发该查询,但我认为这段代码与我的问题无关。这是我认为需要修改才能正确工作的代码: .expand { display: block !important; position: fixed; -webkit-backface-visibility: hid
.expand {
display: block !important;
position: fixed;
-webkit-backface-visibility: hidden;
top: 50px;
left: 0;
background: rgba(31, 73, 125, 0.8);
width: 100%;
z-index: 999;
}
我想要修复这个问题的原因是,小汉堡菜单始终静态地停留在屏幕的左上角,因为有时我正在构建的站点可能会相当长,所以我希望观众能够更轻松地访问
谢谢大家! 是的,您只需要给div一个固定的高度和
溢出:自动设置
()
如果你不想给它一个最小高度,一个简单(但)的选择是使用csscalc()
像这样
.expand {
max-height: calc(100% - 50px); // 100% viewport height minus the height of the nav.
}
我建议在浏览器不支持calc的情况下,在之前设置回退高度
JavaScript
要实现您真正想要的,您需要javascript。给你
检查菜单是否打开,如果没有
- 定义检查以查看内容是否大于视口,如果大于,则设置
bottom:0px代码>和溢出:自动
并从正文中删除滚动
如果是的话
- 从菜单和打开菜单时添加的正文中删除所有样式
()
嗯?这个问题从来没有一个选定的答案,那么你具体指的是哪一个答案呢?很多人写的是overflow-y:scroll代码>所以我认为它会帮助你解决问题。是的,使用溢出总是会添加第二个滚动条。我知道我在我的帖子里没有这么说,但我不想那样说。
.expand {
max-height: calc(100% - 50px); // 100% viewport height minus the height of the nav.
}
(function($) {
var menu = $('.responsive-menu'), open;
$('.menu-btn').click(function () {
if(!open) {
if(menu.height() > $(window).height()) {
open = true;
menu.css({'bottom': '0px', 'overflow': 'auto'});
document.body.style.overflow = 'hidden';
}
} else {
open = false;
menu.css({'bottom': '', 'overflow': ''});
document.body.style.overflow = '';
}
menu.toggleClass('expand');
});
})(jQuery);