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

нашел статейку про показать/спрятать слои для разных браузеров, и использовал ее для сайта.
линк тут - 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
показать/спрятать слои, 2 простых вопроса
    #34482857
@RuSHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
показать/спрятать слои, 2 простых вопроса
    #34483368
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
painless
2. как можно ускорить загрузку этих 50 невидимых слоев? приходится ждать, пока они все загрузятся, чтобы код заработал.

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

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


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

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

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

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

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


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

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

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

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


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