我有一个页面,其中有一个浮动的可拖动模式,允许我在模式打开时访问背景。除了背景中的垂直滚动条消失以外,以下所有方法均起作用。如何使背景可滚动?
CSS
#myModal {
position: relative;
}
.modal-dialog {
position: fixed;
width: 50%;
margin: 0;
padding: 10px;
}
HTML
<button id="openModal">Show Modal</button>
... lines of text ...
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Draggable Modal</h4>
</div>
<div class="modal-body">
Modal Body
</div>
<div class="modal-footer">
<button class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
脚本
$('#openModal').click(function() {
if (!($('.modal.in').length)) {
$('.modal-dialog').css({
top: 0,
left: 0
});
}
$('#myModal').modal({
backdrop: false,
show: true
});
$('.modal-dialog').draggable({
handle: ".modal-header"
});
});
答案 0 :(得分:1)
每次打开模态时,都会将.modal-open
类添加到body
标记中-并且该类包含overflow:hidden
。
可以通过添加以下内容来解决此问题:
.modal-open {
overflow: inherit;
}
现在,您会发现打开Modal会突然滚动到底部;这也是为什么按钮在每次点击时都从视图中消失的原因。
您可能必须进一步尝试以防止发生滚动,这可能是因为div或其中的某些内容在显示为模式之前就已经得到了焦点。
答案 1 :(得分:1)
这可以解决所有问题,但我不知道它是否适合您的情况。您的情态应该处于相对位置吗?
由于默认情况下使其正常工作,因此该模式已修复。这样会阻止自动滚动到底部
https://jsfiddle.net/3c09qkag/12/
.modal-dialog {
position: fixed;
width: 50%;
margin: 0;
padding: 10px;
}
.modal-open {
overflow: inherit;
}