02.10.2016, 09:56
|
Интересующийся
|
|
Регистрация: 18.09.2016
Сообщений: 20
|
|
из двух кнопок сделать одну
Здравствуйте!
Подскажите пожалуйста, как сделать так, чтоб за открытие и за закрытие отвечала одна кнопка?
Например: Один раз нажал, галерея открылась. Второй раз нажал, закрылась.
http://codepen.io/tjbenton21/pen/LEpqmg
Заранее благодарен!
|
|
02.10.2016, 11:06
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,125
|
|
cubano,
может хоть немного подучится, чтоб не спрашивать элементарные вещи и не плодите однотипные темы
classlist
for(var i = 0; i < buttons.length; i++){
buttons[i].addEventListener("click", function(e){
for(var c = 0; c < containers.length; c++){
containers[c].classList.toggle("u-fancy-load--out")
containers[c].classList.toggle("u-fancy-load--in")
}
}, false);
}
|
|
02.10.2016, 11:38
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,125
|
|
вангую следующий вопрос ...
ответ тут коллекции-не-массивы
|
|
02.10.2016, 12:43
|
Интересующийся
|
|
Регистрация: 18.09.2016
Сообщений: 20
|
|
Огромное спасибо ! все получилось.
Извиняюсь за свои примитивные вопросы!
|
|
03.10.2016, 05:28
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Попутно запомни ключевое слово - toggle. Такие штучки, кнопки-одиночки, переключалки логики чек-боксов*, с двумя состояниями называются toggle - это такая button, но застегивающаяся не через петельку, а через дырку в ткани (люверс). Тынц-тынц, застегнуто-расстегнуто, закрыто-открыто, и тп.
* В JQuery UI небось полно тоглей для оформления чекбоксов.
|
|
03.10.2016, 05:31
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Теоретически может быть третье состояние, ундефайнед, но на вебе оно не применяется.
|
|
03.10.2016, 11:18
|
Интересующийся
|
|
Регистрация: 18.09.2016
Сообщений: 20
|
|
Наберусь наглости, и задам еще один вопрос.
Как сделать, чтобы галерея закрывалась по нажатию на область, за ее пределами?
Заранее благодарен!
|
|
03.10.2016, 11:25
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,125
|
|
cubano,
галерея 1 или несколько?
|
|
03.10.2016, 12:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,125
|
|
cubano,
document.addEventListener("click", function(e) {
var target = e.target, items = document.querySelectorAll(".u-fancy-load--in");
if(!items.length) return;
while (target != document) {
if (target.classList.contains("u-fancy-load") || target.hasAttribute("data-animation")) {
return;
}
target = target.parentNode;
}
[].forEach.call(items, function(el) {
el.classList.add("u-fancy-load--out")
el.classList.remove("u-fancy-load--in")
});
})
Последний раз редактировалось рони, 03.10.2016 в 12:19.
|
|
03.10.2016, 20:47
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Здесь эротичнее сделать генеральную закрывашку на заранее ей известный идентификатор. Добавляешь этот класс к элементу и можно так открыть их много с защищенных от всплытия кнопок всяких, а потом щелк мимо и чпок все закрылись.
|
|
|
|