任何浏览器。所有其他功能正常运行。我可以遍历路线,打开模态,下拉,操纵集合......一切正常。
但在某些时候,浏览器将不再滚动。在任何观点。除非我刷新浏览器窗口。然后滚动恢复正常。
可能是什么原因引起的?为什么刷新页面可以解决问题?有没有一种方法可以在头部上方产生反应?
答案 0 :(得分:3)
这可能是因为在没有正确关闭它的情况下导航离开(Bootstrap?)模式。
当您在HTML5框架中显示模式时,它们通常会显示背景(某种全屏变灰组件)并禁用滚动以模拟桌面体验。
您可以使用简单的iron:router
模式解决此问题,如果您不使用此软件包,请确保在您离开可能显示模式的页面时执行相应的代码。
客户端/视图/模态/ modal.html
<template name="modal">
<div id="modal" class="modal fade">
...
</div>
</template>
<template name="main">
{{> modal}}
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal">
Show Modal
</button>
</template>
client / config / router.js:
// define the plugin
Iron.Router.plugins.hideBootstrapModalOnStop=function(router,options){
router.onStop(function(){
// hide modal backdrop on route change
$(".modal-backdrop").remove();
// remove modal-open state on body
$("body").removeClass("modal-open");
});
};
// activate the plugin
Router.plugin("hideBootstrapModalOnStop");
HTML body标签上设置的.modal-open
类是在设置时禁用滚动的类,所以当我们在可能显示模式时离开页面时确保删除该类,我们防止这种奇怪的意外行为发生。