Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / показать/спрятать слои, 2 простых вопроса / 12 сообщений из 12, страница 1 из 1
24.04.2007, 11:25
    #34482728
painless
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
приветствую всех

нашел статейку про показать/спрятать слои для разных браузеров, и использовал ее для сайта.
линк тут - http://www.getinfo.ru/article138.html

сразу выкладываю скрипт, потому как у меня есть парочка вопросов.


Код:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<script language="JavaScript">
function init() {
IE = (document.all)
NC = (document.layers)
Opera = (document.getElementById)
}

function hiddenLayer() {
init();
if(IE) eval('document.all["descr"].style.visibility = "hidden"')
if(NC) eval('document.layers["descr"].visibility = "hidden"')
if(Opera) eval('document.getElementById("descr").style.visibility = "hidden"')
}

function showLayer() {
init();
if(IE) eval('document.all["descr"].style.visibility = "visible"')
if(NC) eval('document.layers["descr"].visibility = "visible"')
if(Opera) eval('document.getElementById("descr").style.visibility = "visible"')
}
</script>


функция вызывается нажатием на ссылку.

1. можно ли как-то упростить код, если например у меня 50 слоев, которые надо прятать/показывать..? если я правильно понял, для каждого слоя придется писать отдельную функцию, а это делает код очень громоздким.

2. как можно ускорить загрузку этих 50 невидимых слоев? приходится ждать, пока они все загрузятся, чтобы код заработал.

возможно, это глупые вопросы, но не судите строго, я пока только учусь.
буду благодарен за любой продуктивный совет :)
...
Рейтинг: 0 / 0
24.04.2007, 11:52
    #34482857
@RuSHA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<script language="JavaScript">
function init() {
IE = (document.all)
NC = (document.layers)
Opera = (document.getElementById)
}

function hiddenLayer(obj) {
init();
if(IE || Opera) obj.style.visibility = "hidden";
if(NC) obj.visibility = "hidden";
}

function showLayer(obj) {
init();
if(IE || Opera) obj.style.visibility = "visible";
if(NC) obj.visibility = "visible";
}
</script>
<div id='321' onClick='hiddenLayer(this);showLayer(document.getElementById("123"))'> 321 </div>
<div id='123' onClick='hiddenLayer(this);showLayer(document.getElementById("321"))'> 123 </div>
...
Рейтинг: 0 / 0
24.04.2007, 13:40
    #34483368
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
painless
2. как можно ускорить загрузку этих 50 невидимых слоев? приходится ждать, пока они все загрузятся, чтобы код заработал.

странная старая статья
с 2000 года (в NN6) работает obj.style.visibility;(статья 2003го)
лучше почитайте htmlbook

а аргументом я бы передавал не элемент а id
Код: plaintext
hiddenLayer(this.id);showLayer("123");
покороче будет
...
Рейтинг: 0 / 0
24.04.2007, 13:43
    #34483386
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
LINUXER painless
2. как можно ускорить загрузку этих 50 невидимых слоев? приходится ждать, пока они все загрузятся, чтобы код заработал.


можно грузить, можно не грузить
что конкретно нужно?
...
Рейтинг: 0 / 0
27.04.2007, 10:51
    #34492009
painless
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
нужно грузить.
я видел как-то можно в javascript переменные записать, и потом вызывать, вроде быстрее.

что скажете?
...
Рейтинг: 0 / 0
27.04.2007, 12:30
    #34492483
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
painlessнужно грузить.
я видел как-то можно в javascript переменные записать, и потом вызывать, вроде быстрее.

что скажете?
учиться надо от простого к сложному
с visibility:hidden элемент загружается и занимает место
с display:none содержимое не будет загружаться и занимать место, пока display не изменят
...
Рейтинг: 0 / 0
27.04.2007, 12:38
    #34492526
painless
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
да, я пробовал с display, но у меня коряво получилось.

может код показать... ? или как я это себе представляю все
...
Рейтинг: 0 / 0
27.04.2007, 12:39
    #34492529
painless
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
т.е.

function showLayer() {
init();
if(IE) eval('document.all["descr"].style.DISPLAY = "BLOCK"')


что-то такое .. ?
...
Рейтинг: 0 / 0
27.04.2007, 12:47
    #34492568
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
painlessда, я пробовал с display, но у меня коряво получилось.

может код показать... ? или как я это себе представляю все
лучше объяснить задачу, а не то как вы представляете её решение
painless
что-то такое .. ?

Код: plaintext
1.
2.
function showLayer() {
document.getElementById("descr").style.display = "none";
}
...
Рейтинг: 0 / 0
27.04.2007, 12:49
    #34492578
PhoenixNET
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
LINUXER
Код: plaintext
1.
2.
function showLayer() {
document.getElementById("descr").style.display = "none";
}

По id не пойдёт, элементов же 50, лучше по name.
...
Рейтинг: 0 / 0
27.04.2007, 13:11
    #34492682
painless
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
getElementByName ?
...
Рейтинг: 0 / 0
27.04.2007, 14:26
    #34493011
PhoenixNET
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
показать/спрятать слои, 2 простых вопроса
painlessgetElementByName ?
getElement s ByName
Детальнее
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / показать/спрятать слои, 2 простых вопроса / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]