ファンシーボックスを自分のサイトにインストールしたところ、Firefox では完全に動作しますが、クロムとサファリで試してみると、ファンシーボックスがブラウザー ウィンドウの中央に配置されません。
洞察はありますか?
次の場所でデモを表示できます。
ファンシーボックスを自分のサイトにインストールしたところ、Firefox では完全に動作しますが、クロムとサファリで試してみると、ファンシーボックスがブラウザー ウィンドウの中央に配置されません。
洞察はありますか?
次の場所でデモを表示できます。
ライトボックス 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() ];
},
......
上記の答えは私にはうまくいきませんでした。$.fancybox.center(true);
ファンシーボックスが開かれたときの問題を修正するために使用しました。ときどきそれが中心になる前に。または、ビューポートのサイズを変更した後に中央に表示されます。編集:このバグは、Firefox、IE、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 ではわずかに異なっていました。それは単に新しいライセンスのためです。お役に立てれば:
_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
];
},
自分の質問に答えるのは嫌いですが、別の質問に役立つかもしれません。コンテンツにラッパーを追加しましたが、現在は正常に動作しています。