1

上部に HTML リンクが配置された多くの Flash 広告 (swfobject でインストール) があります。私は wmode transparent を使用しており、Mac のすべてのブラウザーで正常に動作しますが、PC の ie/chrome/ff (win7 で表示) のリンクはフラッシュの背後にあります。

wmode=opaque も試してみましたが、役に立ちませんでした。

HTMLは次のとおりです。

<a href="$Link" class="overlay"></a>
<div class="flashContainerSml">
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="125" height="125">
    <param name="movie" value="$Flash.URL" />
    <param  name="wmode" value="transparent" />
    <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="$Flash.URL" width="125" height="125">
    <param  name="wmode" value="transparent" />
    <!--<![endif]-->
    <p>no flash</p>
    <!--[if !IE]>-->
    </object>
    <!--<![endif]-->
    </object>
</div>

そして適切なcss

#sideBar .smallAd .overlay { position: absolute; top: 0; left: 0; z-index: 9999; width: 100%; height: 100%; }
4

3 に答える 3

1

ボタン/リンクが SWF 自体にない特定の理由はありますか? そのようなswfの上にボタンを積み重ねるのは悪い習慣です(あなたが知っているように)。もし私があなただったら、swf をやり直して、上に積み重ねようとするのではなく、ボタンを内側に配置できるようにします。

于 2012-07-18T21:57:47.333 に答える
1

結局シンプルでした。リンクの透明な gif に注目してください。

<a href="$Link" class="overlay"><img src="$ThemeDir/images/transparent.gif" /></a>
                        <div class="flashContainerSml">
                            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="125" height="125">
                            <param name="movie" value="$Flash.URL" />
                            <param name="wmode" value="opaque" />
                            <!--[if !IE]>-->
                            <object type="application/x-shockwave-flash" data="$Flash.URL" width="125" height="125">
                            <param name="wmode" value="opaque" />
                            <!--<![endif]-->
                              <p></p>
                            <!--[if !IE]>-->
                            </object>
                            <!--<![endif]-->
                            </object>
                        </div>
于 2012-07-18T22:30:54.793 に答える
1

オプション 1 (私の最初の回答) が機能しない場合は、次の解決策を試してください。

  <script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/swfobject.js"></script>

<script type="text/javascript">

  $(document).ready(function() {

    swfobject.embedSWF("flash/movie.swf", "no-flash", "195", "120",
    "9.0.0", "flash/expressInstall.swf", {}, {wmode:"transparent"}, {});

    $('#div2').live('click',function() {
      alert('triggered a click');
    });
  });
</script>

<style type="text/css">
  #div {
    position:relative;
  }
  #div2 {
    position:absolute;
    z-index: 1;
  }
</style>  

<div id="div">
  <div id="div2" style="width:195px;height:120px;">
    <object type="img/gif">
      <img src="images/null.gif" width="100%" height="100%" />
    </object>
  </div>   

  <img id="no-flash" src="images/no-flash.gif" alt="" />  

 </div>

今回は #div2 div を最初の div 内に配置しましたが、SWFObject に置き換えられる画像の上に配置しました。この div 内には、MIME タイプが「img/gif」に設定された Object タグがあり、object タグ内には明らかに単なる画像があります。この画像は 1×1 の透過 GIF です。したがって、画像を含むオブジェクトは、DOM の順序と z インデックスにより、他のオブジェクトよりも上になります。これで、必要なすべてのブラウザーでアラートが正常にトリガーされます.. FireFox、Safari、Chrome、Opera、Internet Explorer 8、Internet Explorer 7、および Internet Explorer 6.

于 2012-07-18T22:23:01.803 に答える