我有一个模态问题。我在页面上有一个按钮,用于切换模式。当出现模态时,页面跳至顶部。
我已经竭尽所能找到解决方案/等,但是我真的迷失了。
编辑:
我也尝试过:$('#myModal').modal('show');
但它具有完全相同的效果。
window
都会触发。这似乎很奇怪,出乎意料。我删除了button
via devtools,然后单击页面上的任意位置仍打开了模式窗口。那是想要的行为吗?我想知道您是否没有针对模式点击事件的正确选择器。
我有一个模态问题。我在页面上有一个按钮,用于切换模式。当出现模态时,页面跳至顶部。
我已经竭尽所能找到解决方案/等,但是我真的迷失了。
编辑:
我也尝试过:$('#myModal').modal('show');
但它具有完全相同的效果。
window
都会触发。这似乎很奇怪,出乎意料。我删除了button
via devtools,然后单击页面上的任意位置仍打开了模式窗口。那是想要的行为吗?我想知道您是否没有针对模式点击事件的正确选择器。
Answers:
当模式打开时,将一个modal-open
类设置为<body>
标签。该课程overflow: hidden;
面向身体。将此规则添加到样式表中以覆盖bootstrap.css样式:
body.modal-open {
overflow: visible;
}
现在,滚动条应保持在原位。
.modal('show')
它仍然滚动到页面顶部。Bootstrap v3.2.0
position: inherit
这堂课,但之后又像个魅力。
如果您正在使用标记调用模式。尝试从href属性中删除'#',然后使用数据属性调用模式。
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
如果您将锚标签用作<a href"#" ..> ... </a>
并href="#"
造成问题,请删除该标签。你可以在这里阅读更多
$('the thing you click on').click(function ($e) {
$e.preventDefault();
});
这将帮助您停止滚动条在顶部运行。
我没有看到具体的错误,但我建议您检查HTML语法。
用您的来源进行的微小测试会给我类似以下错误
第127行,第34列:未封闭的元素div。
<div class="inner onlySides">
这可能是一个问题。
我尝试在本地主机上复制此问题,看起来好像很奇怪,与您使用的Bootstrap JS文件存在冲突。
尝试注释您的代码:
<script src="/min/?f=bootstrap.min.js,modernizr.js,bootstrap-datetimepicker.js,nprogress.js,feedback.js,select2.min.js,jquery.unveil.js,equalheights.jquery.js,hogan-v2.0.0.min.edu-custom.js,jquery.visible.min.js,handlebars-v1.2.0.js,typeahead.bundle.min.js,jquery.gridster.js,cookie.jquery.js,jquery.autosize.min.js,application.js&ver=1392814384"></script>
而是使用Bootstrap 2.3.2:
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
这使它对我有用。
我在Bootstrap版本3中尝试过,但是没有用。我仍然无法查明问题所在,但是Firebug的某个地方向我抛出了一个e.preventDefault() is not a function
错误-我猜这应该是根本原因,但我尚未将其与其他JS文件进行比较。
您在div div
之前<div id="footer">
或之后有2个额外的结束标记<div id="mainFrame" class="group">
。我正在使用Visual Studio 2012 Express对此进行检查。
请删除这两个额外的div,并让我们知道其工作原理。我删除了多余的div并删除了所有自定义脚本。在页脚仅保留了jquery核心和引导程序。这是最终输出的画面。 这是为您服务的jsbin游乐场,效果很好。
我建议您使用headjs加载所有脚本和CSS文件。同样,两次加载任何脚本也不是一个好习惯。
我遇到了同样的问题,我想我解决了。您只需要将模式HTML放置为body标签的直接子代!不过,您可以在需要的地方放置用于触发模式的按钮的HTML代码。我相信这避免了CSS继承和触发该问题的位置问题。
例:
<body>
<!-- All your other HTML code -->
<div>
<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
</body>
这个为我做了
body.modal-open {
overflow: inherit;
padding-right: 0 !important;
}
在几个小时内阅读了数十个答案之后,我再次从引导文件中复制了原始代码,并逐步进行调试,以查看导致我始终跳到顶部的原因。因为实际的最新版本的Bootstrap 3会在您现在所在的位置显示模式。我已经发现,-webkit-transform: translate3d(0,0,0);
并height: 100%
在我的CSS身体标记导致此行为。也许这可以帮助一些人。
当我将版本从3.1.1 更改为3.3.7时,对我而言有效
如果您不必使用版本3.3.1,请尝试更换。
更改之后,最好检查一下该功能的其余部分是否正常工作。
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
height:100%是解决问题,但您必须添加正确的“ div”
我遇到了同样的问题,没有答案可以帮助我。找到了一个看起来很愚蠢的解决方法,但至少在我看来是可行的。
我发现该页面仅滚动一次到顶部,并且在下一次打开的模态按预期工作之后。然后我发现隐藏DOM中的任何元素都会启动相同的奇怪滚动。因此,我只是在页面加载后创建了一个虚拟div,而不是隐藏并删除它,这解决了问题。
var $dummy= $("<div>");
$("body").append($dummy);
$dummy.hide().remove();
修复它是一个好主意,它看起来像乔克!
刚好,在您的样式中添加了两个CSS代码之一
.body.modal-open { overflow:visible;padding-right:0px !important;}
.body.modal-open { height:auto;padding-right:0px !important;}
https://github.com/jschr/bootstrap-modal/issues/131#issuecomment-153405449