Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   DHTML/JS/CSS (http://www.flasher.ru/forum/forumdisplay.php?f=24)
-   -   Вопрос по слоям.... (http://www.flasher.ru/forum/showthread.php?t=34517)

Massimo 16.07.2002 13:39

Вопрос по слоям....
 
Привет, вопрос такой:

есть такая штука
<a href="" onClick="putElem('n1'); return false;">ссылка </a>

<div id="n1" style="display:none; text-align:justify;">
текст все дела....
</div>

Ссылка открывает текст.

Вопрос: как сделать так чтобы при открытом тексте можно было нажать на ту же ссылку и она закрывала окно с текстом?

Спасибо

nagash 16.07.2002 13:49

немножко подумать...
ещё немножко подумать...
ещё...
ещё...
вот оно! озарение!!!
нет.. не появилось?
прийдётся спасать человека...
в своей функции пишешь

if (open == 1) {
прячем слой;
open = 0;
} else {
открываем слой;
open = 1;
}
как всегда всё идеальое просто! =)

Massimo 16.07.2002 14:23

Извини, я этом туповат :( , не мог бы ты обяснить поподробнее.
Большой тебе спасиб.

StimS 20.07.2002 02:19

<script>
var open = 0;
function putElem(){
if (open == 0){
n1.style.visibility = "visible";
open = 1;
} else {
n1.style.visibility = "hidden";
open = 0;
}
}
</script>
<a href="" onClick="putElem(); return false;">ссылка </a>

<div id="n1" style="position:absolute;visibility:hidden;text-align:justify;">
текст все дела....
</div>

Massimo 20.07.2002 15:34

Огромное спасибо.
И последний вопрос:
А если элементов много...
То тогда каа нужно писать

StimS 22.07.2002 00:29

хм, много....

<script>
var open_n1 = 0;
var open_n2 = 0;
var open_n3 = 0;
var open_n4 = 0;
function putElem(abs){
if (eval("open_"+abs) == 0){
abs.style.visibility = "visible";
eval("open_"+abs) = 1;
} else {
abs.style.visibility = "hidden";
eval("open_"+abs) = 0;
}
}
</script>
<a href="" onClick="putElem('n1'); return false;">ссылка 1</a>
<a href="" onClick="putElem('n2'); return false;">ссылка 2</a>
<a href="" onClick="putElem('n3'); return false;">ссылка 3</a>
<a href="" onClick="putElem('n4'); return false;">ссылка 4</a>

<div id="n1" style="position:absolute;visibility:hidden;text-align:justify;">
текст все дела.... 1
</div>
<div id="n2" style="position:absolute;visibility:hidden;text-align:justify;">
текст все дела.... 2
</div>

Все так просто....
Только не переусердствуй
:)

Massimo 22.07.2002 11:39

Не работает почему то , вроде всё правильно делаю.... :mad:

StimS 26.07.2002 22:08

Цитата:

<script>
var open_n1 = 0;
var open_n2 = 0;
var open_n3 = 0;
var open_n4 = 0;
function putElem(abs){
prov = "open_"+abs;
if (prov == 0){
abs.style.visibility = "visible";
"open_"+abs = 1;
} else {
abs.style.visibility = "hidden";
"open_"+abs = 0;
}
}
</script>
<a href="" onClick="putElem('n1'); return false;">ссылка 1</a>
<a href="" onClick="putElem('n2'); return false;">ссылка 2</a>
<a href="" onClick="putElem('n3'); return false;">ссылка 3</a>
<a href="" onClick="putElem('n4'); return false;">ссылка 4</a>

<div id="n1" style="position:absolute;visibility:hidden;text-align:justify;">
текст все дела.... 1
</div>
<div id="n2" style="position:absolute;visibility:hidden;text-align:justify;">
текст все дела.... 2
</div>

К сожалению, не работает из-за двух вещей:

1) Неопознает что abs это переменная, а не название слоя 2) Не может задать значение функции (т.е. надо как-то объединить "open_" + abs, но eval(); не подходит

Оказывается, не так все просто
:(

Massimo 27.07.2002 17:34

Такая же штука есть на www.novosibirsk.ru в разделе новостей
но у них не совсем то что мне нужно...

nagash 29.07.2002 11:45

Код:

if (navigator.appName == "Netscape"){
        layerRef="document.layers";
        styleSwitch="";
}else{
        layerRef="document.all";
        styleSwitch=".style";}

function hideLayer(layerName)
{eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');}

function showLayer(layerName)
{eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');}

вот вам рабочик код который бедет показывать \ скрывать слои!
вызываются две функции
showLayer(n1)
hideLayer(n1)
=)


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.