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

Jquery plugins jQuery fancybox插件不是以safari或chrome为中心,而是在firefox中,jquery-plugins,fancybox,Jquery Plugins,Fancybox,我刚刚在我的网站上安装了fancybox,它在firefox中运行得非常好,但当我在chrome和safari中试用时,fancybox并没有在浏览器窗口中居中 有什么见解吗 您可以在以下位置查看演示: 我不想回答我自己的问题,但也许这会帮助别人。我在我的内容中添加了一个包装器,现在效果很好。不想回答我自己的问题,但也许它会帮助其他人。我在我的内容中添加了一个包装器,现在可以正常工作了。我也遇到了同样的问题,使用lightbox 1.3.1和jquery 1.4.2 在短时间查看代码后,我发现函

我刚刚在我的网站上安装了fancybox,它在firefox中运行得非常好,但当我在chrome和safari中试用时,fancybox并没有在浏览器窗口中居中

有什么见解吗

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


我不想回答我自己的问题,但也许这会帮助别人。我在我的内容中添加了一个包装器,现在效果很好。

不想回答我自己的问题,但也许它会帮助其他人。我在我的内容中添加了一个包装器,现在可以正常工作了。

我也遇到了同样的问题,使用lightbox 1.3.1和jquery 1.4.2

在短时间查看代码后,我发现函数fancybox\u get\u视口中存在问题。它使用$window.width和$window.height确定当前视口。问题是,在Chrome和Safari上,此函数返回文档宽度和高度。关于歌剧,也请参见

解决方法很简单。使用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() ];
},
......

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

在短时间查看代码后,我发现函数fancybox\u get\u视口中存在问题。它使用$window.width和$window.height确定当前视口。问题是,在Chrome和Safari上,此函数返回文档宽度和高度。关于歌剧,也请参见

解决方法很简单。使用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() ];
},
......

上面的答案对我不起作用。我刚刚使用了$.fancybox.centertrue;在打开fancybox时修复此问题。以前,只是有时候它会居中。或者在我调整视口的大小后它会居中。编辑:我猜这个bug与问题中的bug略有不同,因为它确实出现在firefox,即chrome,所有东西中

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

上面的答案对我不起作用。我刚刚使用了$.fancybox.centertrue;在打开fancybox时修复此问题。以前,只是有时候它会居中。或者在我调整视口的大小后它会居中。编辑:我猜这个bug与问题中的bug略有不同,因为它确实出现在firefox,即chrome,所有东西中

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

我也在使用Fancybox 1.3.4,为了解决这个问题,我做了一些类似于上面建议的事情,但是,1.3.4中的功能略有不同——以防万一,我为什么不使用Fancybox 2——这仅仅是因为新的许可证。希望这有助于:

_get_viewport = function() {
    return [
        (window.innerWidth?window.innerWidth:$(window).width()) - (currentOpts.margin * 2),
        (window.innerHeight?window.innerHeight:$(window).height()) - (currentOpts.margin * 2),
        $(document).scrollLeft() + currentOpts.margin,
        $(document).scrollTop() + currentOpts.margin
    ];
},

我也在使用Fancybox 1.3.4,为了解决这个问题,我做了一些类似于上面建议的事情,但是,1.3.4中的功能略有不同——以防万一,我为什么不使用Fancybox 2——这仅仅是因为新的许可证。希望这有助于:

_get_viewport = function() {
    return [
        (window.innerWidth?window.innerWidth:$(window).width()) - (currentOpts.margin * 2),
        (window.innerHeight?window.innerHeight:$(window).height()) - (currentOpts.margin * 2),
        $(document).scrollLeft() + currentOpts.margin,
        $(document).scrollTop() + currentOpts.margin
    ];
},

在最新版本3中添加

 parentEl: 'html'

进入选项。我使用的是网站上的特殊的双窗格商店布局,它没有居中,因为容器正在装载到身体中,并且与它的高度有关。将其添加到html标记中可以解决此问题。

在最新版本3中添加

 parentEl: 'html'

进入选项。我使用的是网站上的特殊的双窗格商店布局,它没有居中,因为容器正在装载到身体中,并且与它的高度有关。将其添加到html标记中可以解决此问题。

主题外,但您的一些链接不符合主题,但您的一些链接不起作用感谢此解决方案,但是,您应该对过去的代码示例使用“编码”选项,因为它不可读+您的链接已失效。$window.height返回文档高度,而不是窗口高度。感谢上面的代码片段。但是,它只解决了照片现在在屏幕上正确居中的问题。图像后面的fancybox覆盖半透明框仍然不是屏幕的100%。应该进行的任何其他调整?对于使用Fancybox 1.3.4的用户,该函数现在称为_get_viewport。感谢此解决方案,但是您应该对过去的代码示例使用“编码”选项,因为它不可读+链接已失效。$window.height返回文档高度,而不是窗口高度。感谢上面的代码片段。但是,它只解决了照片现在在屏幕上正确居中的问题。图像后面的fancybox覆盖半透明框仍然不是屏幕的100%。还有其他需要做的调整吗?对于那些使用Fancybox 1.3.4的人来说,这个函数现在被称为_get_viewport。在最新的Fancybox中,我认为新方法是$.Fancybox.Resposition。在最新的Fancybox中,我认为新方法是$.Fancybox.Resposition。你能对如何准确地放置包装器多加一点评论吗?你们能把代码片段贴出来吗?你们能不能再多评论一下你们到底是如何放置你们的包装器的?你能把代码片段贴出来吗?我的荣幸!很高兴能帮上忙,我的荣幸!很高兴这有帮助。