如何更改fancyBox v2中的叠加颜色

在fancyBox版本1中有overlayColor参数,但在版本2中它似乎不再起作用。

编辑CSS不起作用,因为它被插件中的JavaScript覆盖。

有任何想法吗?

Fancybox v2.x API选项是新的,与以前的版本不兼容,因此overlayColor已被helpers => overlay => css => background-color选项取代。

不必像@ Sparky672那样混淆原始(js或css)文件(这是一个不好的做法 )。 您可以在自定义脚本中设置该选项…例如,使用此html:

 open fancybox with a red overlay 

使用自定义脚本,如:

 $(".fancybox").fancybox({ helpers : { overlay: { opacity: 0.8, // or the opacity you want css: {'background-color': '#ff0000'} // or your preferred hex color value } // overlay } // helpers }); // fancybox 

Firefox(和IE 9)不喜欢设置叠加不透明度。 Chrome很好用,但在Firefox + IE9中,不透明度应用于弹出窗口本身。 它们似乎对叠加层和内容进行了不同的分层。

Fancybox 2.1.4中测试过

  helpers: { overlay: { css: { 'background': 'rgba(0, 0, 255, 0.5)' } } } 

如果您设置RGBA值,那么它将起作用。 您必须使用background而不是background-color来覆盖默认的CSS。

请注意,插件本身使用半透明PNG作为叠加层。 这很好,但有两个缩减。 首先它必须加载,除非你预先加载它,否则在你第一次打开弹出窗口时,淡入效果会有点结果。 大多数浏览器在您提交表单后会抑制请求 – 因此,除非您预先加载PNG,否则根本就没有叠加层。

您可以使用属性选择器来定位应用于#fancybox-overlay div的style标记,如下所示:

CSS

 #fancybox-overlay[style] { background-color: blue !important; } 

来自Fancybox v1.3:

叠加选项默认值

  • overlayOpacity:0.3
  • overlayColor:#666

工作实例

 $(".fancybox").fancybox({ overlayOpacity : 0.8, // Set opacity to 0.8 overlayColor : "#000000" // Set color to Black }); 

如果没有内置到fancyBox2中,fancyBox v1中内置的选项将无效。 根据fancyBox v2文档 ,没有这样的overlayColor选项。

我的建议是尝试更改jquery.fancybox.css文件中#fancybox-overlaybackground颜色。

 #fancybox-overlay { position: absolute; top: 0; left: 0; overflow: hidden; display: none; z-index: 1001; background: #000; /* <<-- this one */ } 

根据评论编辑:

技术上正确的答案是: 您无法设置overlayColor选项,因为新版本将不接受该过时参数。

但是,如果你愿意编辑插件,那应该这样做......

jquery.fancybox.js1308行附近,您将看到叠加选项。

 opts = $.extend(true, { speedIn : 'fast', closeClick : true, opacity : 1, css : { background: 'black' // <-- this one } }, opts); this.overlay = $('
').css(opts.css).appendTo('body');

css #fancybox-overlay似乎对我不起作用(fb2),我使用.fancybox-skin完美运行。

 .fancybox-skin{ background-color:#121212!important; } 

在上一版本中,帮助程序需要父参数,如下所示:

 $.fancybox.helpers.overlay.open({parent: $('body')}); 

使用css for bg:

 #fancy_bg { background-color:000000 !important; } 

今天,这个工作。 如果您不喜欢背景颜色,请将其设置为无;

 .fancybox-bg { background-color: #FF0004; }