jQuery fancybox插件不是以safari或chrome为中心,而是在firefox中

1 jquery-plugins fancybox

我刚刚在我的网站上安装了fancybox,它在firefox中完美运行,但是当我在chrome和safari中尝试时,fancybox不在浏览器窗口中居中.

任何见解?

您可以在以下位置查看演示:

http://kotyy.com/kotyy/lindseyandasp/test2.xhtml

小智 7

我有同样的问题,使用lightbox 1.3.1和jquery 1.4.2.

在查看代码后,我发现函数fancybox_get_viewport中存在问题.它使用$(window).width()和$(window).height()确定当前视口.问题是,在Chrome和Safari上,这些功能会返回文档宽度和高度.关于Opera,请参阅http://updatepanel.net/2009/02/20/getting-the-page-and-viewport-dimensions-using-jquery/

解决方法很简单.使用window.innerHeight ? window.innerHeight : $(window).height();

这是修改过的函数,在jquery.fancybox-1.3.1.js中替换:

fancybox_get_viewport = function() {
    return [ (window.innerWidth ? window.innerWidth : $(window).width()), 
         (window.innerHeight ? window.innerHeight : $(window).height()),
         $(document).scrollLeft(), $(document).scrollTop() ];
},
......
Run Code Online (Sandbox Code Playgroud)


Key*_*eyo 7

上面的答案对我不起作用.我只是$.fancybox.center(true);在打开fancybox时解决了这个问题.之前有时它会居中.或者在我调整视口大小后它会居中.编辑:我猜这个错误与问题中的错误略有不同,因为它确实发生在firefox,IE,chrome,一切.

$('a.whatever').fancybox({
  //Your options here...
  onComplete: function(links, index) {
    //leave this at the bottom
    $.fancybox.center(true);
  }
});
Run Code Online (Sandbox Code Playgroud)