Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在将内容加载到Shadowbox之前,如何防止iframe白色闪烁?_Jquery_Html_Css_Iframe_Shadowbox - Fatal编程技术网

Jquery 在将内容加载到Shadowbox之前,如何防止iframe白色闪烁?

Jquery 在将内容加载到Shadowbox之前,如何防止iframe白色闪烁?,jquery,html,css,iframe,shadowbox,Jquery,Html,Css,Iframe,Shadowbox,我已经设置了shadowbox jquery插件来启动一个由vimeo文件和iframe中的一些html内容组成的库。该功能运行良好,但在内容完全加载之前,我体验到iframe发出可怕的白色闪烁 你可以在行动中看到这一点 Shadowbox确实有一个内置的加载屏幕,但它消失得太早了——在内容完全加载之前 我已经尝试了很多解决方案,包括Chris Coyier的,但它们对我不起作用 我认为一定有一种方法可以做到这一点,使用jquery纠正现有的Shadowbox加载屏幕,使其在内容完全加载后才能消

我已经设置了shadowbox jquery插件来启动一个由vimeo文件和iframe中的一些html内容组成的库。该功能运行良好,但在内容完全加载之前,我体验到iframe发出可怕的白色闪烁

你可以在行动中看到这一点

Shadowbox确实有一个内置的加载屏幕,但它消失得太早了——在内容完全加载之前

我已经尝试了很多解决方案,包括Chris Coyier的,但它们对我不起作用

我认为一定有一种方法可以做到这一点,使用jquery纠正现有的Shadowbox加载屏幕,使其在内容完全加载后才能消失,但我不知道如何做到这一点

我目前正在呼叫Shadowbox,头部带有以下代码:

Shadowbox.init({
    overlayOpacity: 1,
    gallery:        "test",
    continuous:     false,
    counterType:    "default",
    displayNav:     true
});
库的标记为: (我认为这与这里的问题无关,但为了清楚起见,这是自定义wordpress主题的一部分。)



其他一切都已完成,但需要在客户签字前解决此问题-任何帮助都将不胜感激

我找到了一个解决方案,通过css强制加载屏幕保持可见,然后延迟淡出以覆盖任何白色闪烁

Shadowbox.setup("a.test", {
   player:         "iframe",
   overlayOpacity:  1,
   gallery:        "test",
   continuous:     false,
   counterType:    "default",
   displayNav:      true,
   onFinish: function(){
       $('#sb-loading').css({'display': 'block'}).delay(800).fadeOut(600);
   }
Shadowbox.setup("a.test", {
   player:         "iframe",
   overlayOpacity:  1,
   gallery:        "test",
   continuous:     false,
   counterType:    "default",
   displayNav:      true,
   onFinish: function(){
       $('#sb-loading').css({'display': 'block'}).delay(800).fadeOut(600);
   }