imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 21.03.2006, 14:38     # 1
он_Кофе
Guest
 
Сообщения: n/a

глобальная проблема IFRAME

такой пример есть две ячейки
<tr>
<td></td>
<td></td>
</tr>

в первой название меню, во второй подменю,
....
<script language="JavaScript">
function showdiv(id, num) {
document.getElementById(id).style.display = num ? "block" : "none";
}
</script>
....
<tr>
<td onMouseOver="showdiv('1', 1)" onMouseOut="showdiv('1', 0)">название меню</td>
<td>
<div id="1"><iframe src=""></iframe></div>
</td>
</tr>

Задача в том чтобы при наведении курсора на первый пункт меню, слева появлялось подменю... Везде работает, но опера не хочет работать: подвожу курсор, подменю появляется, но как только я хочу навести на него мышкой, оно сразу исчезает, хотя во всех других броузерах все нормально... Если убрать <iframe> то и в Opera все нормально работает, но без <iframe> нельзя, так как когда рядом с меню появляются элементы форм, или flash-анимация, то они накладываются на появляющийся слой - пробовал z-index не спасает... спасает только <iframe>... Как быть с Opera?
 
Старый 23.03.2006, 19:15     # 2
Raven B.
Member
 
Аватар для Raven B.
 
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328

Raven B. Известность не заставит себя ждатьRaven B. Известность не заставит себя ждать
1. ЭЭЭЭ... При всем уважении, у тебя в коде написано что при выводе курсора за область ячейки с надписью название меню вторая ячейка должна исчезнуть... Когда ты наводишь курсор на появившееся меню то выходишь за границы этой ячейки. Так что как раз опера ведет себя правильно...
И iframe тут абсолютно не причем...
Решение:
а. сворачивать по клику пользователя на какой то триггер
б. сворачивать по прошествию периода времени (setinterval или что то вроде), когда пользователь не двигал там мышкой (onMouseMove)
2. Что касается перекрытия в опере.
а. Z-index поставь большой. 100 например.
б. ниже не должно быть элементов с position: relative или absolute. Иначе они всегда будут перкрывать твою менюшку.
в. если там никак без такого позиционирования не обойтись - расположи меню после этих элементов по тексту, а затем перемети их в нужное положение програмно.

Да, еще одно:
id не должно начинатся с цыфры...
проверь валидатором =)
Raven B. вне форума  
Старый 24.03.2006, 19:43     # 3
он_Кофе
Guest
 
Сообщения: n/a

спасибо!
 
Старый 24.03.2006, 20:27     # 4
Raven B.
Member
 
Аватар для Raven B.
 
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328

Raven B. Известность не заставит себя ждатьRaven B. Известность не заставит себя ждать
Незачто.
Спасибы лутше в репутацию
А то модераторы плюсят.
Если будут проблемы с реализацией - пиши.
Raven B. вне форума  
Старый 27.03.2006, 12:30     # 5
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
он_Кофе, раз уж у тебя темы 2, то отвечу здесь, с твоего позволения, чтобы не флудить тут http://www.imho.ws/showthread.php?p=1151684#post1151684

Итак:
Цитата:
он_Кофе:
Абсолютное позиционирование в моем случае не пожходит, так как время от времени на самом верху у меня появляется баннер... тогда придется под каждый банер менять абсолютное позиционирование...
Зачем, его можно просто рассчитывать динамически, например по координатам возникшего события, вот и все, все просто.

Цитата:
он_Кофе:
попробовал убрать div и скрывать табличку рядом... что-то не работает...
А я попробовал, у меня работает, как и писал Опера 8.53, получается нечто следующее, работоспособное в Опере:
Код:
<script language="JavaScript">
var innn = 0;

function showdiv(id, num) {
    if (num ==0){
        if (innn == 0){innn =1;}
        else{
        innn = 0;    //Вошли, в меню
        document.getElementById(id).style.display = "none";
        }
    }
    else{
    document.getElementById(id).style.display = "block";
    }
//document.getElementById(id).style.display = num ? "block" : "none";
}
</script>

<table border=0 align=left style="margin:0; padding:0">
    <tr onMouseOver="showdiv('ttt1', 1)">
        <td>название меню</td>
        <td></td>
    </tr>
</table>
<div style="border: 1px solid red; width:220; height: 210" onMouseOut="showdiv('ttt1', 0)" id="ttt1">
<iframe src="iframe.htm" style="margin: auto; width:200; height: 200; display: block" frameborder=0 align=middle></iframe></td>
</div>
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:57.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.