注:最初に私のコメントを読んでください。
私はiPad固有のWebアプリを構築しています。リンクがクリックされたときにウィンドウにコンテンツをオーバーレイするために fancybox を使用していますが、私の問題は fancybox に固有のものではないと思います。
オーバーレイを表示してから、フルスクリーンにアニメーション化しようとしています (位置とサイズを変更しています)。アクセラレーションを得るために、ボックスから出てくる従来のアニメーションではなく、css3 トランスフォームを使用してファンシーボックス トランジションを作成しようとしています。私はほとんどそこにいますが、奇妙な問題に遭遇しています...
変換を適用してオーバーレイの高さを変更すると、ビューポートが変更され、ズームアウトします。ボックスの高さをどのようなサイズに変更しても、ビューポートはズームアウトします (ボックスを大きくするほど、ビューポートはズームアウトします)。メタタグを使用しています: . 奇妙なことは、これが幅で起こらないことです。オーバーレイの幅は画面全体の幅にうまく変換され、ビューポートは変更されません。高さと一緒です。
何か案は?私は単純なものが欠けていると確信しています。
それが役立つ場合に備えて、ここにいくつかのコードがあります。注: ファンシーブック ライブラリにいくつかの変更を加えたので、下に奇妙なものがある場合は、それが理由です。私が言ったように、これは Fancybox とは何の関係もないと思います。私が苦労しているのはモバイル Safari です。
トランジション:
var F = $.fancybox;
F.transitions.fullScreen = function() {
var cssProps = F._getPosition(true);
cssProps.top = parseInt(cssProps.top, 10) + 'px';
cssProps.opacity = 1;
// set the wrapper to its starting point and show it
F.wrap.css(cssProps).show();
$(".fancybox-inner").css({width:cssProps.width, height:cssProps.height});
window.setTimeout(function(){
var leftPos = F.wrap.offset().left;
var topPos = F.wrap.offset().top;
$(".fancybox-wrap").css({"-webkit-transform": "translate3d(-"+leftPos+"px,-"+topPos+"px,0)", width: "880px", height: "500px" });
},200)
};
CSS:
.fancybox-wrap{
-webkit-transition:all 1s ease-in;
-webkit-transform: translate3d(0,0,0);
-webkit-transition-duration: 1000ms;
}
乾杯