Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2016, 07:31   #1
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию Скрыть и показать слои

Есть три слоя Layer1, Layer2, Layer3 нужно так при нажатии button1 слой Layer1 показывается, а слои Layer2, Layer3 скрыты; при нажатии button2 слой Layer2 показывается, а слои Layer1, Layer3 скрыты; при нажатии button3 слой Layer3 показывается, а слои Layer1, Layer2 скрыты; При загрузке страницы должен быть виден слой Layer1.
Код:
button1.addEventListener("click", layer1);//скрываем и показываем слой Layer1
button2.addEventListener("click", layer2);//скрываем и показываем слой Layer2
button3.addEventListener("click", layer3);//скрываем и показываем слой Layer3
 
//Функция скрывает и показывает слой Layer1-------------------------------------------
 
function layer1() {
with (document.getElementById('Layer1').style)
    {
       if (display == "none")
           display = "block";
       else
           display = "none";
    }
};
//Функция скрывает и показывает слой Layer2-------------------------------------------
 
function layer2() {
with (document.getElementById('Layer2').style)
    {
       if (display == "none")
           display = "block";
       else
           display = "none";
    }
};
//Функция скрывает и показывает слой Layer3-------------------------------------------
 
function layer3() {
with (document.getElementById('Layer3').style)
    {
       if (display == "none")
           display = "block";
       else
           display = "none";
    }
};
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 28.10.2016, 08:01   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так а вопрос-то в чем? Делайте это, а не только переключайте видимость одного элемента.

Я бы начал с создания функции типа
Код:
function setLayerVisibility(layer, isVisible)
чтобы не копипастить кучу кода.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.10.2016, 08:04   #3
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Можно чуть чуть по подробнее
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 28.10.2016, 08:14   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что подробнее?
Код:
function изменитьВидимостьСлоя(слой, сделатьВидимым?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.10.2016, 08:31   #5
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что подробнее?
Код:
function изменитьВидимостьСлоя(слой, сделатьВидимым?)
С параметрами плохо у меня пока))
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 28.10.2016, 08:37   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

https://learn.javascript.ru/function-basics#параметры
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.10.2016, 08:44   #7
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Кнопки оставляем?
button1.addEventListener("click", layer1);//скрываем и показываем слой Layer1
button2.addEventListener("click", layer2);//скрываем и показываем слой Layer2
button3.addEventListener("click", layer3);//скрываем и показываем слой Layer3
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 28.10.2016, 10:50   #8
spoon100500
Форумчанин
 
Аватар для spoon100500
 
Регистрация: 14.10.2016
Сообщений: 406
По умолчанию

Почему такой вариант не работает?
Код:
function layer3() {
layerStyl3 = document.getElementById('Layer3').style;
    if (layerStyl3.style.display == "none") {
            layerStyl3.style.display = "block";
        } else {
            layerStyl3.style.display = "none";
    }
	
};
Такой работает
Код:
function layer3() {
with (document.getElementById('Layer3').style)
    {
       if (display == "none")
           display = "block";
       else
           display = "none";
    }
};
Еду медленно, но верно!
spoon100500 вне форума Ответить с цитированием
Старый 28.10.2016, 11:02   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так Вы же style два раза берёте. сначала в переменную, а потом ещё и условии.
попробуйте так:
Код:
function layer3() {
var layerStyl3 = document.getElementById('Layer3');
    if (layerStyl3.style.display == "none") {
            layerStyl3.style.display = "block";
        } else {
            layerStyl3.style.display = "none";
    }
	
};
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2016, 11:08   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А еще можно узнать о https://learn.javascript.ru/ifelse#%...BD%D0%B0%D0%BA и сокращать подобный код до 1 строки вместо 4.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопки,скрыть и показать (WinApi c++) Sterben Помощь студентам 0 07.12.2015 23:11
Скрыть/Показать панель UKRtortik Общие вопросы Delphi 10 01.06.2014 22:20
Показать/скрыть edit`ы Rapala Общие вопросы Delphi 3 11.05.2010 09:20
как скрыть/показать TMainMenu blackstersl Общие вопросы Delphi 3 13.06.2009 18:12
Показать и скрыть фигуры Иванов_ДМ Microsoft Office Excel 5 28.04.2009 16:49