html - Overflow-y 无法在 body 上的 div 上正常工作

标签 html css css-transitions

我的容器中有一个简单的 div,如下所示:

.popup-fixed-info{
    position:fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) !important;
    overflow-y:scroll;
    max-height:80%;
    visibility:hidden;
    opacity:0;
    z-index:10;
}

在元素点击时我调用这个简单的 jQuery 函数

function open_popup(class_to_open) {
  $('.popup-fixed-info').css("visibility", "visible");
  $('.popup-fixed-info').css("opacity", "1");
}

我的想法是,当我滚动“.popup-fixed-info”div 时,背景在滚动,而不是 div 本身。

最佳答案

要解决这个问题,您需要隐藏正文溢出。在 jQuery 中执行此操作:

function open_popup(class_to_open) {
  $('.popup-fixed-info').css("visibility", "visible");
  $('.popup-fixed-info').css("opacity", "1");
  $('body').css("overflow", "hidden");
}

然后在关闭弹出窗口时将其删除。无论您有什么功能。

$('body').css("overflow", "auto");

关于html - Overflow-y 无法在 body 上的 div 上正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53306633/

相关文章:

javascript - sweetalert2 未捕获语法错误 : Unexpected identifier

javascript - 在链接点击时向 <html> 添加类并添加延迟重定向(淡出页面)

html - 在 Sublime Text 中查找结束 HTML 标签

html - 无法定位特定元素?

css - 头部的 wordpress 样式 - 不想要

css - 悬停在一个元素上会影响所有元素

jQuery Append/CSS 转换冲突

javascript - 禁止将文本粘贴到 HTML 表单中

javascript - 如何在不牺牲空格的情况下缩进代码

javascript - 在没有 JavaScript 的情况下保留 HTML 选择选项中的空格