我刚刚在我的网站上安装了fancybox,它在firefox中完美运行,但是当我在chrome和safari中尝试时,fancybox不在浏览器窗口中居中.
任何见解?
您可以在以下位置查看演示:
小智 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)
上面的答案对我不起作用.我只是$.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)