1

swfobject を使用して 100% の高さと幅で埋め込む完全なフラッシュ サイトがあります。swffit を使用して、大量のコンテンツを含むページのブラウザ スクロール バーを強制しています。これはすべて問題なく、完全に機能します。また、代替コンテンツとして HTML 形式のコンテンツも用意しています。これは、Flash swfobject を動作させるために、CSS にoverflow = hidden を追加する必要があります。

html{
height: 100%;
overflow:hidden; 
}
#content{
height: 100%;
}

これにより、代替コンテンツが表示されているときに表示されるスクロール バーが停止します。これを修正する方法を知っている人はいますか?

4

2 に答える 2

2

SWFFit はわかりませんが、そもそもなぜ必要なのoverflow: hiddenですか? ないと成り立たない?

頭に浮かぶ唯一の回避策は、2 つのクラスを定義し (1 つは あり、もう 1つはなし) 、JavaScript をトリガーして Flash 内からプログラムで要素overflow: hiddenのクラスを変更することです。html

于 2009-12-07T12:28:26.167 に答える
1

SWFObject 埋め込みの成功に基づいてページの CSS またはコンテンツを変更する必要がある場合は、SWFObject 2.2 のコールバック関数機能を使用します。

ダイナミック パブリッシングの場合は、次のようになります。

var flashvars = {};
var params = {};
var attributes = {};
var embedHandler = function (e){
};

swfobject.embedSWF("mymovie.swf", "targetID", "550", "400", "9.0.0", "expressInstall.swf", flashvars, params, attributes, embedHandler);

あなたの状況で、overflow:hidden を HTML 要素から削除する必要がある場合は、次のようにすることができます。

var flashvars = {};
var params = {};
var attributes = {};
var embedHandler = function (e){
   //If embed fails
   if(!e.success){
      document.getElementsByTagName("html")[0].style.overflow = "auto";
   }
};

swfobject.embedSWF("mymovie.swf", "targetID", "550", "400", "9.0.0", "expressInstall.swf", flashvars, params, attributes, embedHandler);

このコールバック関数機能は、SWFObject 2.2 でのみ使用できます。

于 2009-12-07T18:04:00.920 に答える