防止正文滚动但允许叠加滚动我一直在寻找一个“灯箱”类型的解决方案,允许这个但尚未找到一个(请,如果您知道任何,请建议)。我正在尝试重新创建的行为就像您在点击图片时在Pinterest上看到的那样。叠加层是可滚动的(因为整个叠加层像页面顶部的页面一样向上移动),但叠加层后面的主体是固定的。我试图用CSS创建它(即div在整个页面和主体上面叠加overflow: hidden),但它不会阻止div可滚动。如何防止正文/页面滚动但仍在全屏容器内滚动?
3 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
不要使用overflow: hidden;上body。它会自动将所有内容滚动到顶部。也不需要JavaScript。利用overflow: auto;。此解决方案甚至适用于移动Safari:
HTML结构
<div class="overlay"> <div class="overlay-content"></div></div><div class="background-content"> lengthy content here</div>
造型
.overlay{
position: fixed;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
background-color: rgba(0, 0, 0, 0.8);
.overlay-content {
height: 100%;
overflow: scroll;
}}.background-content{
height: 100%;
overflow: auto;}更新:
对于想要键盘空格键,页面向上/向下工作的人:你需要专注于叠加,例如,点击它,或者在这部分div响应键盘之前手动JS聚焦它。与覆盖“关闭”时相同,因为它只是将覆盖移动到侧面。否则浏览器,这些只是两个正常的divs,它不知道为什么它应该专注于它们中的任何一个。
- 3 回答
- 0 关注
- 490 浏览
相关问题推荐
添加回答
举报
0/150
提交
取消
