css - 如何从页面左右滑动模态窗口

标签 css twitter-bootstrap bootstrap-4

我希望隐藏两个模式窗口,并将它们切换为从左侧滑入,另一个从右侧滑入。 然而,在我创建的 fiddle 中,左侧和右侧模态窗口与页面的左侧和右侧正确对齐。左侧模态从右侧滑入,而不是从左边距“滑出”。 Fiddle Here

当我尝试让左侧模态窗口从左侧滑动时,我失去了滑出效果。

#rightModal .modal-dialog-slideout {
  min-height: 100%;
  margin: 0 0 0 auto;
  background: #fff;
}

#rightModal .modal.fade .modal-dialog.modal-dialog-slideout {
  -webkit-transform: translate(100%, 0)scale(1);
  transform: translate(100%, 0)scale(1);
}

#rightModal .modal.fade.show .modal-dialog.modal-dialog-slideout {
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
  display: flex;
  align-items: stretch;
  -webkit-box-align: stretch;
  height: 100%;
}

#rightModal .modal.fade.show .modal-dialog.modal-dialog-slideout .modal-body {
  overflow-y: auto;
  overflow-x: hidden;
}

#rightModal .modal-dialog-slideout .modal-content {
  border: 0;
}

#rightModal .modal-dialog-slideout .modal-header,
.modal-dialog-slideout .modal-footer {
  height: 69px;
  display: block;
}

#rightModal .modal-dialog-slideout .modal-header h5 {
  float: left;
  color: blue;
}

#leftModal .modal-dialog-slideout {
  min-height: 100%;
  margin: 0 auto 0 0;
  background: #fff;
}

#leftModal .modal.fade .modal-dialog.modal-dialog-slideout {
  -webkit-transform: translate(-100%, 0)scale(1);
  transform: translate(-100%, 0)scale(1);
}

#leftModal .modal.fade.show .modal-dialog.modal-dialog-slideout {
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
  display: flex;
  align-items: stretch;
  -webkit-box-align: stretch;
  height: 100%;
}

#leftModal .modal.fade.show .modal-dialog.modal-dialog-slideout .modal-body {
  overflow-y: auto;
  overflow-x: hidden;
}

#leftModal .modal-dialog-slideout .modal-content {
  border: 0;
}

#leftModal .modal-dialog-slideout .modal-header,
.modal-dialog-slideout .modal-footer {
  height: 69px;
  display: block;
}

#leftModal .modal-dialog-slideout .modal-header h5 {
  float: left;
  color: red;
}

如何保持滑出效果,并保持两个模态框的位置?

最佳答案

当模态未显示时,您需要在x轴上平移.modal-dialog -100%

模态框在显示时具有 .show 类。使用 :not() CSS 伪类选择处于隐藏状态的模式。

The :not() CSS pseudo-class represents elements that do not match a list of selectors. Since it prevents specific items from being selected, it is known as the negation pseudo-class. - https://developer.mozilla.org

#leftModal.modal.fade:not(.show) .modal-dialog.modal-dialog-slideout {
    -webkit-transform: translate(-100%,0)scale(1);
    transform: translate(-100%,0)scale(1);
}

https://jsfiddle.net/r25uphq3/

关于css - 如何从页面左右滑动模态窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63205077/

相关文章:

JQuery prependTo() 在 div 之间创建额外的空间

css - 如何停止 grunt compass 任务编译用于包含的 sass 文件

html - 如何让这个 div 跨越整个宽度?

javascript - 菜单关闭 Canvas 错误移动

javascript - Bootstrap 模式不会在页面加载时打开

bootstrap-4 - Bootstrap Navbar 在不同的浏览器中表现不同

javascript - 加载页面时显示带视频的模态,可选择单击按钮打开相同的模态

css - 如何用css均匀布局多个动态出现的按钮?

html - 多个 :before vertical dots under decimal in <ol> tag

css - 将 border-top 添加到特定行