我一直在尝试解决这个问题,我尝试了几乎所有在google上找到的内容,但没有找到解决方案。打开模式时如何阻止背景滚动?我尝试过的方法适用于桌面版,但是当我使用本地主机并在iOS和Android上对其进行测试时,都无法正常运行,并且会一直滚动。
我试图通过隐藏主体来添加带有jquery的背景块,但这不起作用。我尝试的另一种做法是添加body.modal-open {overflow:hidden;}。任何帮助都将受到欢迎,谢谢。
$("#popUpWindow").on("show", function () {
$("body").addClass("noscroll");
}).on("hidden", function () {
$("body").removeClass("noscroll")
});
#popUpWindow{
background: lightblue;
}
body.modal-open{
overflow: hidden;
}
.noscroll { overflow: hidden;}
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.js"></script>
<div class="container">
<h2>Simulacron 3 is the story of a virtual city (total environment simulator) for marketing research, developed by a scientist to reduce the need for opinion polls. The computer-generated city simulation is so well-programmed, that, although the inhabitants have their own consciousness, they are unaware, except for one, that they are only electronic impulses in a computer.
The simulator's lead scientist, Hannon Fuller, dies mysteriously, and a co-worker, Morton Lynch, vanishes. The protagonist, Douglas Hall, is with Lynch when he vanishes, and Hall subsequently struggles to suppress his inchoate madness. As time and events unwind, he progressively grasps that his own world is probably not "real" and might be only a computer-generated simulation.</h2>
<h2>Simulacron 3 is the story of a virtual city (total environment simulator) for marketing research, developed by a scientist to reduce the need for opinion polls. The computer-generated city simulation is so well-programmed, that, although the inhabitants have their own consciousness, they are unaware, except for one, that they are only electronic impulses in a computer.
The simulator's lead scientist, Hannon Fuller, dies mysteriously, and a co-worker, Morton Lynch, vanishes. The protagonist, Douglas Hall, is with Lynch when he vanishes, and Hall subsequently struggles to suppress his inchoate madness. As time and events unwind, he progressively grasps that his own world is probably not "real" and might be only a computer-generated simulation.</h2>
<h2>Simulacron 3 is the story of a virtual city (total environment simulator) for marketing research, developed by a scientist to reduce the need for opinion polls. The computer-generated city simulation is so well-programmed, that, although the inhabitants have their own consciousness, they are unaware, except for one, that they are only electronic impulses in a computer.
The simulator's lead scientist, Hannon Fuller, dies mysteriously, and a co-worker, Morton Lynch, vanishes. The protagonist, Douglas Hall, is with Lynch when he vanishes, and Hall subsequently struggles to suppress his inchoate madness. As time and events unwind, he progressively grasps that his Simulacron 3 is the story of a virtual city (total environment simulator) for marketing research, developed by a scientist to reduce the need for opinion polls. The computer-generated city simulation is so well-programmed, that, although the inhabitants have their own consciousness, they are unaware, except for one, that they are only electronic impulses in a computer.
The simulator's lead scientist, Hannon Fuller, dies mysteriously, and a co-worker, Morton Lynch, vanishes. The protagonist, Douglas Hall, is with Lynch when he vanishes, and Hall subsequently struggles to suppress his inchoate madness. As time and events unwind, he progressively grasps that his own world is probably not "real" and might be only a computer-generated simulation.own world is probably not "real" and might be only a computer-generated simulation.</h2>
<h2>Simulacron 3 is the story of a virtual city (total environment simulator) for marketing research, developed by a scientist to reduce the need for opinion polls. The computer-generated city simulation is so well-programmed, that, although the inhabitants have their own consciousness, they are unaware, except for one, that they are only electronic impulses in a computer.
The simulator's lead scientist, Hannon Fuller, dies mysteriously, and a co-worker, Morton Lynch, vanishes. The protagonist, Douglas Hall, is with Lynch when he vanishes, and Hall subsequently struggles to suppress his inchoate madness. As time and events unwind, he progressively grasps that his Simulacron 3 is the story of a virtual city (total environment simulator) for marketing research, developed by a scientist to reduce the need for opinion polls. The computer-generated city simulation is so well-programmed, that, although the inhabitants have their own consciousness, they are unaware, except for one, that they are only electronic impulses in a computer.
The simulator's lead scientist, Hannon Fuller, dies mysteriously, and a co-worker, Morton Lynch, vanishes. The protagonist, Douglas Hall, is with Lynch when he vanishes, and Hall subsequently struggles to suppress his inchoate madness. As time and events unwind, he progressively grasps that his own world is probably not "real" and might be only a computer-generated simulation.own world is probably not "real" and might be only a computer-generated simulation.</h2>
<button type='button' class="btn btn-success" data-toggle="modal" data-target="#popUpWindow">Open Log In Window</button>
<div class="modal fade" id="popUpWindow">
<div class="modal-dialog">
<div class="modal-content">
<!-- header -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3 class="modal-title">Login Form</h3>
</div>
<!-- body -->
<div class="modal-header">
<form role="form">
<div class="form-group">
<input type="email" class="form-control" placeholder="Email"/>
<input type="password" class="form-control" placeholder="Password" />
</div>
</form>
</div>
<!-- footer -->
<div class="modal-footer">
<button class="btn btn-primary btn-block">Log In</button>
</div>
</div>
</div>
</div>
</div>
答案 0 :(得分:0)
由于您使用的是jQuery,因此只需在整个overflow: hidden;
上使用CSS body
属性,这样整个body
就不会滚动而不是您的.noscroll
类,然后将弹出模式的overflow
属性设置为overflow: auto;
,这样就不会禁用模式的滚动。但是,您还需要使用position: fixed;
,因为没有它,在移动设备上仍然可以滚动。在关闭弹出窗口后,只需重置原始CSS属性即可使用正确的功能:
$("#popUpWindow").on("show", function () {
$("body").css("overflow", "hidden");
$("body").css("position", "fixed");
$("#popUpWindow").css("overflow", "auto");
}).on("hidden", function () {
$("body").css("overflow", "auto");
$("body").css("position", "initial");
});
希望有帮助!