【发布时间】:2016-05-13 14:02:05
【问题描述】:
我正在使用Zurb Foundation 5 Reveal Modal,我遇到了一个小问题,即弹出窗口允许人们在打开页面时向下滚动,因此简单的解决方法是将overflow:hidden 添加到body。我使用了以下有效的代码,但在模式关闭后会隐藏页面溢出。
(function($) {
var $body = $('body');
$body.on('open.fndtn.reveal', function(){
$body.css('overflow', 'hidden').off('open.fndtn.reveal');
});
})(jQuery);
所以我修改了代码,以便在关闭模式时将正文设置回overflow: inherit。
(function($) {
var $body = $('body');
$body.on('open.fndtn.reveal', function(){
$body.css('overflow', 'hidden').off('open.fndtn.reveal');
});
$body.on('close.fndtn.reveal', function(){
$body.css('overflow', 'inherit').off('close.fndtn.reveal');
});
})(jQuery);
乍一看这很好用,但是多次重复打开和关闭模式的过程会将溢出变为固定的inherit 状态。
编辑:查看演示,它似乎将overflow: hidden 和auto 添加到正文中,但在我的身上却没有。我已经更新到最新的 Zurb Foundation 5 和 jQuery,但仍然有这个问题。
我制作了一个Zurb Foundation 5 (v5.5.3) jsFiddle base 和另一个jsFiddle with Zurb Foundation Reveal,复制了我遇到的问题。我唯一能看到的是,他们正在使用某种自定义 JavaScript。
【问题讨论】:
-
我已经进行了这些更改。
-
解决滚动的原因可能比试图解决它更简单。演示防止滚动。为什么不适合你?
-
嘿@isherwood 你的权利,这很奇怪,因为我使用 ZURB 提供的所有默认设置制作了一些 jsFiddles。在 Reveal jsFiddle 中,您可以清楚地看到它并没有在正文中添加任何内容,就像在演示中一样。我已经查看了 Source 及其任务,以找出代码在哪里,这是由于他们如何加载脚本的性质,所以我认为他们使用的是该页面上未提及的自定义选项,或者他们是使用来自 github 的每晚构建或其他东西....
标签: javascript jquery zurb-foundation zurb-foundation-5