11

Web アプリケーションでGoogle Earth プラグインの上に html div を配置するのに問題があります。助けていただければ幸いです。

マップ、テレイン、ハイブリッド モードでは問題ありませんが、「地球」モードでは、フラッシュが起動し、マップが自動的に上に重ねられます。

Z インデックスは役に立ちません。

おそらく私は次のようなことができます:

document.getElementById('flashDiv').setAttribute('wmode', 'opaque');

しかし、Google のものはオンザフライでコンパイルされるため、はるかに困難になります。生成されたコードを表示しても、ここでは役に立ちませんでした。繰り返しますが、オンザフライでコンパイルされるため、SWFObject のようなものはその日を救うことはできません...

誰かが似たようなことに遭遇しましたか?私は午前中、Google Earth API グループをトロールしましたが、あまり役に立ちませんでした。

更新:さらに髪を引っ張った後、答えはiframe shimにあります。また、プラグインが Flash ベースであるという結論に飛びついたかもしれません。調査中...

代替テキスト
(出典: googlepages.com )

4

5 に答える 5

16

IFRAMEここでシムの使用方法を示すデモをまとめました。

http://earth-api-samples.googlecode.com/svn/trunk/demos/customcontrols/index.html

于 2009-08-12T15:58:56.060 に答える
3

プラグインの場合、その上に他の要素を確実に配置することはできません。ブラウザは通常、プラグインが関係している場合、要素を「階層化」する機能のほとんどを手放します。

これがほとんどのブラウザーで引き続き機能することを確認する限り、Iframe はそれを回避する方法である可能性があると思います。

于 2009-03-02T06:04:28.210 に答える
3

Google がユーザーにコードを埋め込む方法を調べたところ、iFrame を使用しているようです。それでも、フラッシュで問題が発生した場合は、以下を参照してください...

フラッシュ要素 (または YouTube ビデオの html) にドロップダウン ナビゲーションを表示しようとすると、同様の状況に陥ります。いくつかの要因が作用しました。

1 つ目は、Flash 要素にカーソルを合わせたい html 要素は、各兄弟要素と親 div に対して css プロパティが設定された兄弟 html 要素でなければなりませんでした。たとえば、次のようになります。

<div id="parent">
  <div id="sibling"></div>
  <embed id=”flash”&gt;<other script code></embed>
</div>

それから私のcssは

//.parent may not need to be set to relative
#parent   { position: relative; }
// the value on sibling1 just needs to be higher than .sibling2
#sibling  { position: relative; z-index: 20; }
#flash    { position: relative; z-index: 10; display:inline }

注目すべきもう 1 つの点は、フラッシュの wmode パラメータを透過に設定する必要があることです。

このトリックは、YouTube ビデオだけでなく、さまざまなフラッシュ アプリケーションでも機能しています。フラッシュ上に表示したい html が、親 div の z-index ではなく、実際のフラッシュ コードの兄弟要素であることを確認することがトリックです。フラッシュ上に表示する html が flash 要素よりも高く、両方の html 要素の位置が相対または絶対に設定され、wmode パラメータが透過に設定されています。

これが役立つことを願っていますが、問題は iFrame にあると思います。

于 2009-03-04T13:15:03.417 に答える