html - 固定 div 下的可滚动主体

标签 html css

我有一个问题,即使有隐藏的溢出,我的正文内容也可以滚动。这可以使用以下链接在 IE 中重现:https://plnkr.co/edit/2o6dID5rB9zAdeUfiVDb?p=preview

如果我单击鼠标左键并将其向下移动,正文内容将向下滚动。有什么解决方法吗?

body {
    height: 100%;
    overflow: hidden;
}

.modal-backdrop {
  position:fixed;
  top:0;
    width: 100%;
    height: 100%;
    z-index: 10001;
    background-color: red;
    opacity: 0.4;
}

.event-modal-wrapper {
    position: fixed;
    z-index: 10002;
    top: 0;
    margin: 0 auto;
    padding-top: 140px;
    padding-bottom: 140px;
    right: 0;
    width:300px;
    max-width: 95%;
    height: auto;
}

.event-modal-container {
    position: relative;
    width: 100%;
    height: 100%;
    background-color: #e9ebee;
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    overflow: auto;
    padding: 10px;
    z-index: 10003;
}
<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
  </head>

  <body>
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
    <h1>Hello Plunker!</h1><br />
          
    <div class="modal-backdrop" ></div>
    
    <div class="event-modal-wrapper">
        <div class="event-modal-container">
            asdsa<br />
            asdsa<br />

            asdsa<br />        asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />        asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />        asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />        asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />        asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />        asdsa<br />
            asdsa<br />
            asdsa<br />
            asdsa<br />
            aaaaaa<br />
        </div>
    </div>    
  </body>

</html>

最佳答案

我几乎可以肯定这里没有 css 解决方案(但我真的希望有...)

同时 - 这是 HTML5 解决方法:

<body draggable="true" ondragstart="event.preventDefault()">

如果你想要一个 javascript 解决方案,你可以使用这个:

window.onload = function() {
    body = document.getElementsByTagName('body')[0]
    body.addEventListener('mousedown', function() {
        event.preventDefault();
    })
}

You will probably want to add some workaround for clicks on anchors (if you have any), but in general it should work.

关于html - 固定 div 下的可滚动主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40466737/

相关文章:

javascript - Jquery UI 可拖动选择项可拖动

javascript - 在警报框中显示消息

html - 如何将下拉项添加到我的水平菜单栏?

javascript - 如何使用 j Query 将值附加到 html div id

jquery - 返回一个已经在窗口调整大小之前的元素

html - 使用 Bootstrap 3 编辑移动版 CSS

css - 对多个页面进行 CSS 更改 : combining code?

javascript - 单击来自另一个窗口的链接时激活打开的窗口选项卡

javascript - 如何使用 javascript 和 jquery 停止播放音频

css - 当用作背景图像时,svg 不会出现在 safari 中