旧的IE中不存在Fancybox覆盖

我已经制作了这个测试页面,用于在网站上使用fancybox,它可以在PC上的所有Mac浏览器,iOS和非IE浏览器上使用。 Windows 8上的最新IE也没问题。 但是在XP上的IE8,7和6不会在页面上显示透明覆盖或弹出框阴影,并且弹出窗口下的页面上的链接仍然是可点击的(我不想要)。 (注意,测试页面上的弹出图像不一定是正确的最终图像 – 没关系)。

可能我已经搞砸了某个地方的js(除了能够改变非常基本的配置,我在js中没有专业知识)。 我注意到fancybox演示页面在旧IE中运行良好。

我不喜欢旧IE中的盒子阴影,但我需要叠加的模态行为。

我会非常感激地收到任何错误指示。

嗯,这是典型的情况,修改原始fancybox文件不是一个好主意(除非你知道你在做什么。)最好创建自己的自定义脚本来修改默认设置。

在“修改过的”fancybox js文件中,您在第1707行添加了此文件:

css : { 'background' : 'rgba(200,200,200,0.35)' // changing here does change overlay colour }, // custom CSS properties 

该更改会抑制要渲染的fancybox的叠加图像,如fancybox css文件的第151行所示:

 .fancybox-overlay { background: url("fancybox_overlay.png") repeat scroll 0 0 transparent; /* other properties here */ } 

IE8及更低版本不支持RGBa因此不存在叠加。 不过,设置一个后备声明是一个好主意,因为这里建议避免这类问题。

下次,尝试使用您自己的自定义脚本覆盖默认设置,并保留原始文件。

编辑

如果你想设置自己的png 叠加图像背景(有自己的颜色和不透明度),那么只需添加到自定义脚本:

 helpers: { overlay: { css: { 'background-image': 'url("path/my_own_overlay.png")' } } } 

并留下原始的fancybox_overlay.png文件。