Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][CSS][JavaScript]problem z "nakładaniem" elementu html na element flash
Forum PHP.pl > Forum > Przedszkole
siemieng
witam -> mam problem dotyczący zrobienia prostego, rozwijanego menu opartego na zdarzeniach mouseover i mouseout sterującymi właściwością display: none i block elementu div.....

Sprawa wygląda tak, gdy po najechaniu na odpowiedni element pojawia się menu wszystko jest ok, dopóki menu pojawia się w "sąsiedztwie" innych elementów html, natomiast przy elemencie flash pojawia się problem, ponieważ flash jest zawsze na wierzchu. Pomimo zastosowania position:absolute, bawiłem się także z-index: ale nic nie daje. FLASH zawsze na górze:/

A obecnie mam strone do zrobienia z takim menu na całą szerokość + po nin reklama flash - i tu mam problem, nad którym spędziłem dzisiejszy dzień i nic mądrego nie wymyśliłem:/

Zresztą zobaczcie sami:
oto link to prostego przykładu obrazującego problem:

http://edance.pl/trycode/flash/flash.html

jak widać po najechaniu na element, pojawiający się szary blok jest zawsze pod spodem:/ (a tak sie rozwijanego menu nie da zrobić:P)

oto kod:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html40/loose.dtd">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <meta name="author" content="qwa">
  5. <meta name="generator" content="SWiSH Max (2007.11.02) http://www.swishzone.com/">
  6. <meta name="description" content="">
  7. <meta name="keywords" content="flash">
  8. <!-- text used in the movie -->
  9. <!-- flash -->
  10. <!-- Created by SWiSH Max - Flash Made Easy - www.swishzone.com -->
  11. <style type="text/css">
  12. .firstBox {
  13. width:160px;
  14. height:40px;
  15. font-size:14px;
  16. font-weight:bold;
  17. text-align:center;
  18. color:#ffffff;
  19. border-style:solid;
  20. border-width:2px;
  21. border-color:#ffffff;
  22. background-color:#333333;
  23. }
  24.  
  25. .secondBox {
  26. width:400px;
  27. height:400px;
  28. background-color:#adadad;
  29. display:none;
  30. position:absolute; }
  31.  
  32. </style>
  33.  
  34. <script type="text/javascript" language="javascript">
  35. function showBox (eId) {
  36. var eId = document.getElementById(eId);
  37. eId.style.display='block';
  38. }
  39.  
  40. function hideBox (eId) {
  41. var eId = document.getElementById(eId);
  42. eId.style.display='none';
  43. }
  44. </script>
  45.  
  46. </head>
  47. <body bgcolor="#ffffff">
  48. <div class="firstBox" onmouseover="showBox('divId');" onmouseout="hideBox('divId');">::naglowek::<br />(onmouseover)</div>
  49.  
  50. <div class="secondBox" id="divId"></div>
  51.  
  52. <br />
  53. classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
  54. codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"
  55. id="flash"
  56. width="600" height="150"
  57. >
  58. <param name="movie" value="flash.swf">
  59. <param name="bgcolor" value="#0066FF">
  60. <param name="quality" value="high">
  61. <param name="allowscriptaccess" value="samedomain">
  62. <embed
  63. type="application/x-shockwave-flash"
  64. pluginspage="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
  65. name="flash"
  66. width="600" height="150"
  67. src="flash.swf"
  68. bgcolor="#0066FF"
  69. quality="high"
  70. allowscriptaccess="samedomain"
  71. >
  72. <noembed>
  73. </noembed>
  74. </embed>
  75. </object>
  76. </body>
  77. </html>



kod jest domyślnym plikiem wyeksportowanym z SWiSH Max2 (w którym robię elementy flash) + na szybko dodany css i js

co więcej nie poradziły sobie z tym też wszystkie gotowe skrypty pościągane z sieci (np: skrypt na: http://www.kurshtml.boo.pl/skrypty/pozycja..._rozwijane.html też sobie z tym nie radzi:/)

Natomiast efekt, który chciałbym osiągnąć można zobaczyć na: http://www.time.com/time/specials/2007/top...1686204,00.html

tu całe menu jest zrobione w podobny sposób i działa tak jak powinno z reklamami w formacie flasha........

Proszę o pomoc, z góry dzięki winksmiley.jpg

pozdrawiam...
nithajasz
.secondBox {
width:400px;
height:400px;
background-color:#adadad;
display:none;
position:fixed;}

Zmiana position na fixed powinna poskutkować smile.gif
siemieng
przez dzień spędzony nad tym ****** próbowałem wszystkiego i kombinowałem jak mogłem;

co do position:fixed -> działa ale tylko pod firefoxem

sprawdź sam (to samo co wcześniej z position zmienionym na fixed);

http://edance.pl/trycode/flash/flash2.html

Firefox -OK; IE - interpretuje jak relative; Opera - jak absolute wcześniej :/
nithajasz
Niestety IE nie obsługuje position:fixed, ponoć 7 tak ale jak widzę jest to tylko ponoć..

Patrzyłem może znajde coś ciekawego jak to obejść ale nie testowałem, może się przyda..

http://divinentd.com/experiments/emulating...tion-fixed.html
http://www.finefrog.com/2007/02/26/faking-...net-explorer-6/
http://www.nowcss.com/javascript/emulating...d-in-ie-6-below
devnul
nie wczytywałem się w tekst dokładnie bo jest już stosunkowo późno a tekst posta dość spory, więc jeśli dobrze interpretuję problem to sprawę załatwić powinien iframe pozycjonowany absolutnie (tak jak menu) o identycznych parametrach wysokości/szerokości jak poprzedni będący pod warstwą służącą za menu z ustawionym display:none. Do tego proponuje zapoznać się z notą techniczną adobe bo problem leży w dużej mierze w samej wtyczce flasha
siemieng
"nithajasz" dzięki wielkie za pomoc, ale podobnie jak ja myślałeś i kombinowałeś w stronę rozwiązania po stronie CSS, a tu problem leżał po stronie elementu flash.

Natomiast szczere podziękowania i szacuneczek w stronę "devnul" exclamation.gif

faktycznie wystarczyło dodać:
  1. <param name="movie" value="flash.swf">
  2. <param name="bgcolor" value="#0066FF">
  3. <param name="quality" value="high">
  4. <param name="allowscriptaccess" value="samedomain">
  5. <param name="wmode" value="opaque">
  6. <embed
  7. type="application/x-shockwave-flash"
  8. pluginspage="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"
  9. name="flash"
  10. width="600" height="150"
  11. src="flash.swf"
  12. bgcolor="#0066FF"
  13. quality="high"
  14. allowscriptaccess="samedomain"
  15. [b]wmode="opaque"[/b]
  16. >


o czym wyjaśnione na: http://kb.adobe.com/selfservice/viewConten...3&sliceId=2

Raz jeszcze dzięki wielkie winksmiley.jpg

pozdrawiam...
webdice
Proszę o dodanie do postów odpowiednich bbcode.
pest
A ja jak zwykle przypomnę o tym, żeby jednak starać się nie stosować elementów flasha, tam gdzie mają być przykryte przez html.
W Linuksie nie ma na to rozwiązania i flash zawsze będzie na wierzchu (z tej instrukcji adobe wynika, że przeglądarki w linuksie nie obsługują parametru wmode).
devnul
@pest: w linuksie rozwiązaniem jest właśnie wstawienie iframa w sposób jaki opisałem wyżęjza cieka, zresztą, proponuje zobaczyć żywy przykład - video.google.com - oni mogli to czemu innym ma się nie udać
pest
devnul: Sorki, że cię męczę, ale mógłbyś mi zademonstrować (link) stronkę, gdzie element html nakłada się na element flash i działa to również w linuksie. Co do video.google.com, nie znalazłem tam strony, na której element html miałby wejść w flash'a. Sam kombinowałem z iframe'ami, ale wynik taki jak i bez nich.

Co do noty technicznej Adobe - nie ma tam nic wspomniane o Linuksie, jakby go w ogóle nie badali. Jedyne o czym wspominają to kilka kombinacji przeglądarek i systemy od 2 producentów (Windows i MacOS). Ja mam po prostu wrażenie że ten akapit odnosi się do wszystkich przeglądarek w Linuksie
Cytat(Nota Tech Adobe nr 15523)
The WMODE parameter is supported only on some browser/Flash Player version combinations. If the WMODE parameter is not supported, the Flash movie will always display on top. Refer to TechNote 14201 for details.
devnul
informacja:
http://blog.marcoos.com/2006/07/21/html-di...x-its-possible/

przykład:
http://piast.pertus.com.pl/~marcoos/flashlinux/

co prawda tylko div ale nie widzę problemy żeby zrobić z tego pełnoprawne menu
pest
Biję pokłony, nie widziałem tych przykładów, a już trochę szperałem za tym w sieci. Nie to, żeby było to szczególnie wygodne do zastosowania, ale da się.

devnul: Heh dał bym Ci "pomógł" ale to nie mój temat winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.