IFrame, zIndex и xml
От: maxx_lt  
Дата: 12.07.04 11:16
Оценка:
Добрый день,

На этом форуме ни раз поднималась проблема перекрывания слоев. Вопрос по этой же тематике:

Есть два IFRAME:
<IFRAME Id="Frm1" Style="position:absolute; z-index:1;" Src="probe.xml">
<IFRAME Id="Frm2" Style="position:absolute; z-index:2;" AllowTransparency="True" Src="transparent.htm">

При позиционировании Frm2 поверх Frm1, Frm2 оказывается под Frm1 не смотря на z-index.
Если в качестве Src у Frm1 используется обычный *.htm файл, то все работет как надо (Browser IE 6.0).

Такое ощущение что это связано с особенностями "восприятия" XML.
Файл probe.xml переводится на клиенте с помощью xslt преобразования в "псевдо" HTML. И он имеет такую структуру
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="probe.xsl"?>
<root>
<item></item>
</root>

Странно выглядит то, что поведение IFrame зависит от его контента. Может быть кто-нибудь знает с чем это связано?

Спасибо.
Re: IFrame, zIndex и xml
От: marx paul Германия Провести онлайн-опрос
Дата: 12.07.04 20:10
Оценка:
Здравствуйте, maxx_lt, Вы писали:

_>
_><IFRAME Id="Frm1" Style="position:absolute; z-index:1;" Src="probe.xml">
_><IFRAME Id="Frm2" Style="position:absolute; z-index:2;" AllowTransparency="True" Src="transparent.htm">
_>

_>При позиционировании Frm2 поверх Frm1, Frm2 оказывается под Frm1 не смотря на z-index.

Как ты это узнаешь?

_>Если в качестве Src у Frm1 используется обычный *.htm файл, то все работет как надо (Browser IE 6.0).


А как надо?

Мое предположение: из-за прозрачности второго ифрейма при всяких там кликак фокус получает первый ифрейм, что логично. Поэтому, я делаю прозрачность фильтром
style="filter:Alpha(opacity=0, finishopacity=100, style=0);".

работает правда толко в ИЕ.
Провести онлайн-опрос
Online-Umfrage erstellen
Re[2]: IFrame, zIndex и xml
От: maxx_lt  
Дата: 13.07.04 09:01
Оценка:
Здравствуйте, marx paul, Вы писали:

MP>Как ты это узнаешь?

Я сдвигаю его на 10 пикселей вверх и влево (в таком варианте наглядно видно кто кого перекрывает).

MP>А как надо?

Дело в том, что если в нижнем IFrame в качестве Src используется xml файл, то этот фрейм оакзывается сверху, а если html то снизу.

MP>Мое предположение: из-за прозрачности второго ифрейма при всяких там кликак фокус получает первый ифрейм, что логично. Поэтому, я делаю прозрачность фильтром

MP>style="filter:Alpha(opacity=0, finishopacity=100, style=0);".

Мне как раз и нужно получить эффект наподобие фильтра filter:progid:DXImageTransform.Microsoft.Barn(duration=1, motion='in', orientation='vertical'); для IFrame (смысл фильтра в том что при перегрузке контента появляется графический эффект). Но на IFrame он работает как то коряво (опять же с xml контентом там беда). Поэтому пришлось уйти на схему с двумя IFrame. Суть этой идеи в том, что во время перегрузки нижнего IFrame эффект будет выполнен в первом.

Спасибо за ответ, maxx_lt
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.