【问题标题】:How to Add/Remove CSS Overflow to body using jQuery & Zurb Foundation 5 Reveal Modal如何使用 jQuery 和 Zurb Foundation 5 Reveal Modal 添加/删除 CSS 溢出到正文
【发布时间】: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: hiddenauto 添加到正文中,但在我的身上却没有。我已经更新到最新的 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


【解决方案1】:

你可以这样绑定事件,详情见http://foundation.zurb.com/sites/docs/v/5.5.3/components/reveal.html

$(document).on('open.fndtn.reveal', '[data-reveal]', function () {
  $('body').css('overflow', 'hidden');
});
$(document).on('close.fndtn.reveal', '[data-reveal]', function () {
  $('body').css('overflow', 'visible');
});

我做了一个 CodePen 示例,请看这里http://codepen.io/shoaibik/full/BKEZep/

更新

我还发现了 onreveal 演示页面,一旦打开模式,溢出就会隐藏。我从基础文档中复制了文件,它无需额外的 JS 代码即可工作。 我创建了一个新的 CodePen 示例。 http://codepen.io/shoaibik/pen/KzYvNe

【讨论】:

  • 这在我的jsFiddle 中也很有效!非常感谢....@isherwood 让我想到可能有一个更好的解决方案实际上内置在 JS 基础库中。
  • 我认为您使用的基础文件可能存在问题,您使用的是最新的基础5吗?
  • 是的,5.5.3 是最新的。在 JSFiddle 上查看外部资源。
  • 我从文档页面复制了文件,它无需额外的 JS 代码即可工作。
  • 请提供这些 JS 和 CSS 文件的链接,以便我可以添加到 fiddlejs
猜你喜欢
  • 1970-01-01
  • 2014-12-15
  • 2013-08-30
  • 2014-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多