2011-09-09 13 views
1

私は画像とswfファイル(バナー)へのリンクを持つulを持っています。リンクをクリックすると、Fancyboxはそのオーバーレイを開き、image/swf-fileを表示します。ファンシーボックスでSWFファイルを開くときに次元を動的に変更

問題は、swfファイルのサイズがどのようなものであっても、Fancyboxは常に約580 * 390のオーバーレイを表示することです。これはもちろんswfファイルの歪んだビューを示しています。

ノー結果と、オートスケールなどでいじってきた... :-(

これは私のコードです:

$("a.fancybox").attr('rel', 'gallery').fancybox({ 
    'transitionIn'  : 'none', 
    'transitionOut'  : 'none', 
    'titlePosition'  : 'inside', 
    'titleFormat'  : function(title, currentArray, currentIndex, currentOpts) { 
     return '<span id="fancybox-title-inside">' + (currentIndex + 1) + '/' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>'; 
    } 
}); 

はFancyboxはの大きさを検出することができます任意の方法はありますswfファイルを検索し、結果としてオーバーレイのサイズを決定しますか?

swfファイルのサイズはデータベースなどにはありませんので、ご注意ください また、画像とswfは常にランダム。

ご回答をお待ちしております!

よろしく、

M

答えて

0

ソリューションは、SWFObjectを経由してSWFの高さ&幅を設定し、fancyboxのiframeのソースの設定を使用している別のPHPページ内のSWFファイルを、表示するために、ありました。バックエンドでは、このファイルにSWFを渡します。それはそれです!

0

おそらく、あなたはFancyBoxのオートスケールやautodimensionオプションを使用することができます。 API pageで説明したように:

autoScale true If true, FancyBox is scaled to fit in viewport 
autoDimensions true For inline and ajax views, resizes the view to the element recieves. Make sure it has dimensions otherwise this will give unexpected results 
+0

ありがとうございますが、これらの設定は機能しません。私のオーバーレイは上記の寸法と同じです。 – maartenmachiels

0

あなたはjqueryのを使用してSWFの寸法を取得し、fancyboxのドキュメントで指定された幅と高さのオプションを使用してfancyboxコードにそれらを渡すことはできません。前のコメントとして http://fancybox.net/api

+0

これは良い解決策のように聞こえる。 jqueryを使って次元を決定する方法は? – maartenmachiels

+0

次の行に沿って何かする必要があります。 var mySwfWidth = $( '#idOfSwf')。width(); var mySwfHeight = $( '#idOfSwf')。高さ(); が、その後fancyboxのあなたの特性にあなたが持っているでしょう: 幅:mySwfWidthを、 高さ:mySwfHeight – ScampDoodle

+0

問題は、SWFは、外部からインラインでないロードされていることです。私はあなたがphp(getimagesize($ path_or_url);)で次元を見つけることができることを見てきましたが、プロセス全体が複雑であるようです... – maartenmachiels