2010-06-30 38 views
13

Birkaç alt menü öğesine sahip bir menü çubuğum var. Ana sayfada menü çubuğunun altında bulunan bir flash animasyon bulunur. Alt menü öğeleri flaş dosyasının üzerindeyse, flash dosyası menü çubuğunda görüntülenir. Z-endeksi ile denedim, ama işe yaramaz.IE üzerinde üst üste div ekleme

Bu sorun, yalnızca IE'de gerçekleşir.

Herhangi bir ipucu? Sen kod yerleştirme flaş bir nitelik vermek zorunda

<embed src="flashfile" wmode="transparent"> 

cevap

25

Evet Chris,

:

sayesinde flash dosyasını eklemek

+0

Ben IE-11 ile aynı sorunu var ve işe yaramadı ... herhangi bir fikir? –

6

, sen şeffaf pencere modunu ayarlamak gerekir

<param name="wmode" value="transparent" /> 

Bu

çalışacak
+0

tüm tarayıcılarda çalışır hangi ikisi kullanmaya karar verdi. Ağda arama yapıyordum ve bu mümkün olmadığını söyleyen insanlar vardı, bu yüzden de şansımın üzerinde bir şans denedim ve cevap vardı! Çok teşekkürler – seedg

2

Muneer ve Tim zaten iyi bir cevap verdi ama bazı ek infos eklemek istiyorum: onlar neden yaklaşık Flash OBJECT and EMBED tag attributes

  • transparent ve opaque değerleri bir erişilebilirlik sorunu neden olacaktır

    • Adobe'nin web sitesinde bir belgelerine sahiptir Okuyucuları taramak için flash nesnesinin içeriğini gizleyin. Yalnızca window varsayılan değeri, ekran okuyucuları için
    • z-dizini için geçerli değildir. Z-endeksi, sizin durumunuzda hiçbir şey yapmaz ve yapamaz: nesne bir eklenti, flash player veya bir alternatif tarafından yönetilir ve tarayıcı tarafından işlenen sayfa dışında. Yine de onunla (width, height, JS) etkileşime giriyor ama render edebilmek için ...
    • IE6 (ve 7?) 'De belirli bir elemanın z-endeks değerinin görüntülenmeyeceği seçme elemanlarıyla benzer bir sorun var. select (ikincisi, IE'nin seçtiği öğeleri göz önünde bulundurması nedeniyle bir hatadır)
    • OS X ve Linux üzerinde test etmeniz gerekir, bu işletim sistemlerinde flaşla ilgili birkaç sorun vardır.
  • 2

    Buna ek olarak, özellikle de bir div içindeki flash nesnesinin kullanılması durumunda, bu parametrenin her zaman işe yaramadığını eklemek daha iyi bir çözümdür.sayfasının sonunda

    şöyle flaş nesneyi kayıt:

    <script type="text/javascript"> 
        swfobject.registerObject('FlashIdName'); 
    </script> 
    

    Sonra şöyle bir javascript işlevi çağırmak:

    <script type="text/javascript"> 
    function Chk_Flash(ToRegister) 
    { 
        document.getElementById('FlashIdName').style.visibility = 'visible'; 
        return true; 
    } 
    </script> 
    
    :

    <script type="text/javascript"> 
        swfobject.registerObject('FlashIdName'); 
        Chk_Flash('FlashIdName'); 
    </script> 
    

    Bu işlev aşağıdakileri yapar

    Ve tüm tarayıcılar 100%

    üzerinde çalışır

    da kullanabilirsiniz:

    document.getElementById('FlashIdName').style.visibility = 'hidden'; 
    

    Şimdi mesela gibi div etiketi eylemleri çağıran eğer.

    document.getElementById('MyDiv').style.visibility = 'block'; 
    

    veya document.getElementById ('myDiv') tarzı .visibility = 'none';

    Önce neyi div eylem yapmak bu sırayla flaş Visibilty çağrı yapmanız gereken:

    document.getElementById('MyDiv').style.display = 'block'; 
    document.getElementById('FlashIdName').style.visibility = 'visible'; 
    

    tadını çıkarın!

    1

    kullanın bu değer yerine 'şeffaf':

    wmode="opaque" 
    
    1

    Sonunda hem bütün browers üzerinde çalışacak bir çözüm bulmak başardı.

    Ben IE üzerinde istenilen çıktıyı almak değil firefox olur,
    <param name="wmode" value="transparent" /> 
    

    kullandıysanız ve ben
    <embed wmode="transparent" ></embed> 
    

    kullanılırsa, i yani firefox ancak istenen çıkışı var.

    Ben de bu kadar basit olduğunu bilmiyordum

    <!--[if IE]> 
        <param name="wmode" value="transparent" /> 
    <![endif]--> 
    
    <embed wmode="transparent" ></embed> 
    
    İlgili konular