javascript - 模态固定位置内容移位

标签 javascript css modal-dialog

经过大量研究,我是unable to find a proper solution当模式窗口打开时,向固定定位元素的右侧移动、封面图像和标准内容。

注意:我正在寻找一个通用的、干净的解决方案,而不是只适用于特定布局的硬编码修复。

有人知道如何解决这个问题吗?请引用这个例子:http://codepen.io/microcipcip/pen/kXdRWK

body {
  height: 2500px;
  &.-modal-open {
      overflow: hidden;
  }
}
.fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 20px 0;
  background: #FF0000;
}
.modal {
    overflow-x: hidden;
    overflow-y: scroll;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity .2s ease-in-out;
    body.-modal-open & {
        opacity: 1;
    }
}

最佳答案

解决方案非常简单,纯 css 修复:

.-modal-open .fixed,
.-modal-open .content {
  overflow-y:scroll;
}

..然而,这要求您的内容具有不同的样式。您永远不应该为您的内容使用边距,而是将其包装在容器中并使用填充代替。

滚动条的宽度并不总是 17px...17px 用于 Firefox,但 15px 用于 chrome,有时 IE 甚至没有滚动条宽度,具体取决于代码。

这是更新的笔: http://codepen.io/scooterlord/pen/KgKLwB

编辑:忘了说,这是一个跨浏览器的解决方案,在我测试过的所有地方都能完美运行。如果浏览器是移动的,那么添加/删除额外滚动条不会改变宽度,并且根据浏览器,新创建的内容/固定元素滚动条始终与初始主体滚动条相同。

关于javascript - 模态固定位置内容移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39103435/

相关文章:

javascript - 在 SVG 中切换图层

javascript - 设置下一个 div 的高度

javascript - 使用AR.js扫描二维码并根据扫描值显示对象

javascript - Bootstrap 3.7 中的 anchor 链接不起作用

html - 960 网格容器创建头部空间

svg - 如何通过单击 SVG 元素打开模态窗口

javascript - Twitter Bootstrap - 为什么我的模态和背景一样褪色?

javascript - 单个语句中的多个递增/递减

javascript - 向下滚动后顶部图像折叠到导航栏中

javascript - Bootstrap 模式委托(delegate)事件类型语法