Невозможно получить раскрывающийся список CSS над файлом Flash - PullRequest
2 голосов
/ 13 ноября 2009

Я обыскал все и попробовал все методы, которые у меня есть, и я не могу отобразить раскрывающиеся меню CSS над моим файлом Flash.

Вы можете перейти по адресу: http://beta.riverlifefellowship.com, имя пользователя - riverlife, пароль - flow (без кавычек на обоих).

Я использую swfObject и у меня установлен <param name="flashvars" value="wmode=opaque"/>. Div вокруг выпадающего списка - это абсолютная позиция с z-индексом 9999, а div вокруг флеш-файла - это относительная позиция с z-индексом -1

.

Любые предложения о том, что стоит попробовать, с благодарностью!

[Примечание: он работает во всех браузерах в Mac OS, но не в браузерах в ОС Windows]

Ответы [ 4 ]

6 голосов
/ 13 ноября 2009

Установите свойство wmode на Flash прозрачным - это обычно работает

EDIT: Вы используете <object> для встраивания .swf - это один из способов, но <embed> будет работать во многих браузерах и фактически решит проблему по большей части в сочетании с уже заданным wmode. У Adobe Dreamweaver есть хороший способ создания некоторого JavaScript, который обрабатывает выбор или <object> на основе браузера. Но без этого ваш код должен выглядеть примерно так. (Это проверено в Firebug и работает)

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="980" height="250">
    <param name="movie" value="/files/themes/RiverLife-Oct09/media/header_ssp2.swf" />
    <param name="quality" value="high" />
    <param name="wmode" value="opaque" />
    <embed src="/files/themes/RiverLife-Oct09/media/header_ssp2.swf" quality="high" wmode="opaque" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="980" height="250"></embed>     
    </object>
5 голосов
/ 13 ноября 2009

Если вам на самом деле не нужна прозрачность (т. Е. У вашего флэш-фильма есть прозрачный фон), лучшим выбором будет opaque для wmode, который будет иметь лучшую производительность, чем transparent , Только wmode="window" (по умолчанию) не позволяет браузеру рисовать поверх флеш-памяти.

http://www.communitymx.com/content/article.cfm?cid=e5141

Этот режим меня смутил благодаря такой формулировке: «Непрозрачный режим заставляет фильм скрывать все позади это на странице. Кроме того, непрозрачный режим перемещает элементы позади Flash фильмы (например, с динамическим HTML), чтобы предотвратить их показ через. "Правда есть, так как с помощью wmode = "непрозрачный", вы разместили Flash Player прямо на страницу, теперь он может принять размещение и позиционирование как любой другой элемент. Если ваш зритель не использует совместимый браузер (список для подписки), z-индекс будет соблюдаться и оказаны. Так что да, вы можете двигаться элементы позади Flash фильмов не дать им просвечивать, но Вы можете так же легко перемещать элементы перед Flash фильмами чтобы не показывать Flash через.

2 голосов
/ 13 ноября 2009

Вы установили прозрачный режим wmode?

<param name="wmode" value="transparent" />
1 голос
/ 14 ноября 2009

Ваше выпадающее меню будет работать с position: absolute.

Edit: У меня был похожий случай, где я также получил выпадающее меню вверху и объект вспышки под ним. В моем случае в меню position: absolute и объект флэш wmode="opaque". Возможно, стоит также упомянуть, что меню находится в контейнере div с overflow: auto и объектом flash. Это работает для меня.

Хорошо, давайте запишем это.

<div id="header">
    <div id="menu"></div>
</div>

<div id="flashContainer">
    <object id=flash"></object>
</div>




#header
{
    overflow: auto;
}
#header #menu
{
    position: absolute;
    top: 2px;
    left: 40px;
}
#flashContainer
{
    overflow: auto;
}
#flash
{
    float: left;
}
...