Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: xRUSha от 16 Января 2003, 21:16:46
-
Нужно добится того, чтобы при наведении на одну область, рядом с ней появлялась картинка
(менюшка типа). Для IE все замечательно работает через классы CSS меняемые JavaScript\'ом.
А вот для NN не получается.
Есть вот такой вот код:
ccsfsdgj

но слой почему-то вообще скрыватся не хочет.
Пробовал сделать через CSS

В IE - работает, в NN - нет.
Помогите плз. кто чем сможет. Целый день мучаюсь.
-
В нетскейпе для показа слоя - visibility:show
-
Так я так и прописываю, см. первый пример.
А вот visibility:hide - слой не скрывает.
-
Потому что, для скрытия - visibility:hidden.
p.s. Это я - Metaller
-
для какого нетскапа?
Для 6 или для 4?
NC4 - "hide","show" (нижним регистром)
NC6 - "hidden","visible" (тоже нижним регистром)
-
Не, погоди. AFAIK, в четвертом нетскейпе именно - "show"/"hidden". По крайней мере у меня так работает все...
-
Честно говоря я давно со слоями не работал, а эти данные я их исходников klayers взял
(хотя по моему все-таки hide надо, но проверять мне лень ;))
-
Я ни это спрашиваю. Где show/hide а где visible/hidden я разберусь. Просто в NN и IE к ним нужно обращатся по разному. А вот как?
И еще вопрос по поводу NN\'вского layer\'а - он вообще хоть где-нить работает???
-
layer\'а
в четвертой версии нетскапа
Вообще я рекомендую klayers использовать для этого
-
klayers
Это что???
-
библиотека для упрощения разработки кроссброузерных слоев (кстати автор - русский). Ссылка в FAQ-е
-
в NN и IE к ним нужно обращатся по разному. А вот как?
из одной умной книжки:
document.all.Layer1.visibility=\'hidden\' - для IE
document.layers.Layer1.visibility=\'hidden\' - для NN4
document.getElementById(\'Layer1\').visibility=\'hidden\' - для NN6
где Layer1 - имя этого слоя
-
NN4:
case LAYER_VISIBILITY:
flags = CL_GetLayerFlags(layer);
if (flags & CL_HIDDEN)
visibility = "hide";
else if (flags & CL_OVERRIDE_INHERIT_VISIBILITY)
visibility = "show";
else
visibility = "inherit";
-
Нее - вру, то было наоборот, вот прямой разбор:
/* Get the VISIBILITY parameter to know if this layer starts hidden. */
if (param->visibility)
{
/* Handle "HIDE", "HIDDEN", etc. */
hidden = (PRBool)!XP_STRNCASECMP(param->visibility, "hid", 3);
inherit_visibility = (PRBool)!XP_STRCASECMP(param->visibility, "inherit"
);
}
и вот
/* Accept "hidden" or "hide" */
hidden = (JSBool)(!XP_STRNCASECMP(visibility, "hid", 3));
inherit = (JSBool)(!XP_STRCASECMP(visibility, "inherit"));
if (!hidden && !inherit &&
XP_STRCASECMP(visibility, "show") &&
XP_STRCASECMP(visibility, "visible")) {
JS_ReportError(cx,
"Layer visibility property must be set to "
"one of \'hide\', \'show\' or \'inherit\'");
т.е ему пофиг hide или hidden
а на "show" он вообще не смотрит - только на "hid" или "inherit".
Все остальное для него = "show"
-
Oak, это исходники? Ну ты крут!
-
Исходники
-
никто не сомневается в глубине ваших знаний, но ответ на свой вопрос я получил мессаги 3-4 назад