如何更改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-overlay
的background
颜色。
#fancybox-overlay { position: absolute; top: 0; left: 0; overflow: hidden; display: none; z-index: 1001; background: #000; /* <<-- this one */ }
根据评论编辑:
技术上正确的答案是: 您无法设置overlayColor
选项,因为新版本将不接受该过时参数。
但是,如果你愿意编辑插件,那应该这样做......
在jquery.fancybox.js
第1308
行附近,您将看到叠加选项。
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; }