[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сворачивание и разворачивание по клику
Иван444
Доброго времени суток уважаемые форумчане! Подскажите пожалуйста, что делать либо где почитать, что то не получается не знаю почему, ситуация такая

Есть какой то определенный блок по нему должны изначально кликнуть.

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

Вот так это примерно выглядит


<div id="klik">Нажми на меня!</div>
<div
id="id1">
<div
id="id2">
<div
id="klik_exit">Спрятать</div>
Привет Форумчане!
</div>
</div>



Для вывода и скрытия по клику использую вот такие функции

Показывает блоки
   
$("#klik").click(function(){
$("#id1").css({
'display':'block',
});
});



Скрывает блоки
   
$("#klik_exit").click(function(){
$("#id1").css({
'display':'none',
});
});



На ОЧЕНЬ многих сайтах, наверное на всех, я заметил что там не нужно человеку кликать именно в определенное место, чтобы спрятать блоки. Можно кликнуть просто по самому первому блоку, который располагается на весь экран и все спокойно закрывается.

В общем я попробовал повесить закрытие на тот самый блок который выводится на весь экран, но при этом при каких либо действиях внутри внутренних блоках у меня не должно ничего закрываться, вот это у меня и как раз не получается, т.е. теперь у меня все закрывается по клику ВООБЩЕ в любом месте. Вот такая карусель( Подскажите пожалуйста, как это исправить, что я делаю не так?





AllesKlar
$("#klik").click(function(){
$("#klik").hide();
$("#id1").show();
});

$("#klik_exit").click(function(){
$("#id1").hide();
$("#klik").show();
});


_____________
[продано копирайтерам]
Иван444
Цитата (AllesKlar @ 4.01.2014 - 03:54)
$("#klik").click(function(){
$("#klik").hide();
$("#id1").show();
});

$("#klik_exit").click(function(){
$("#id1").hide();
$("#klik").show();
});

Спасибо большое за отклик, но видимо я вопрос не так написал, т.к. эти функции выполняют тоже самое что делал я.

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


Пример: http://vk.com/team?w=page-2158488_46407274

Есть затемненный блок и внутри блок с картинкой или формой обратной связи или еще что то - что угодно в общем.
Сверху есть кнопочка закрыть, т.е. все тоже самое что мы уже сделали.

Но мне нужно не это, если кликнуть в примере по затемненной области, т.е. по блоку который растянут на весь экран, то все закрывается, вот это у меня и не получается сделать.

тема актуальна

paul85
Это называется модальное окно. Зачем городить огород есть, например, FancyBox. Или я чего-то не понимаю? =)
AllesKlar
Цитата
Но мне нужно не это, если кликнуть в примере по затемненной области, т.е. по блоку который растянут на весь экран, то все закрывается, вот это у меня и не получается сделать.


Все ясно.
Это не внешний затемненный блок, это отдельно стоящий блок, не обернутый никаким другим родителем

<div id='backgroundFilter'></div>
//далее твой html


#backgroundFilter { 
background-color: #000000;
display: none;
height: 100%;
left: 0px;
margin: 0px;
opacity: 0.6;
overflow: hidden;
padding: 0px;
position: fixed;
top: 0px;
width: 100%;
z-index: 1000;
}


$('#backgroundFilter').click(function(){
$('#backgroundFilter').hide();
$('#все_ненужные_блоки').hide();
$('#все_нужные_блоки').show();
});



_____________
[продано копирайтерам]
Иван444
Цитата (paul85 @ 4.01.2014 - 19:57)
Это называется модальное окно. Зачем городить огород есть, например, FancyBox. Или я чего-то не понимаю? =)

Я устанавливал, просто люди пишут что много весит, много весит - 200 кб если не ошибаюсь, точно не скажу, а так как я не профи я принимаю все близко и поэтому раз люди пишут думаю, ну значит и правда много. А если так подумать, то мне нужно то каких то 10 строчек, а FancyBox там для многих функций, там что то вроде галереи можно делать и т.д. и т.п. уже не помню. Поэтому и решил не ставить, а сделать 10 строчек) Вот такие пироги smile.gif
Иван444
Цитата (AllesKlar @ 4.01.2014 - 20:51)
Цитата
Но мне нужно не это, если кликнуть в примере по затемненной области, т.е. по блоку который растянут на весь экран, то все закрывается, вот это у меня и не получается сделать.


Все ясно.
Это не внешний затемненный блок, это отдельно стоящий блок, не обернутый никаким другим родителем

<div id='backgroundFilter'></div>
//далее твой html


#backgroundFilter { 
background-color: #000000;
display: none;
height: 100%;
left: 0px;
margin: 0px;
opacity: 0.6;
overflow: hidden;
padding: 0px;
position: fixed;
top: 0px;
width: 100%;
z-index: 1000;
}


$('#backgroundFilter').click(function(){
$('#backgroundFilter').hide();
$('#все_ненужные_блоки').hide();
$('#все_нужные_блоки').show();
});

Вроде все так просто, но это ведь нужно додуматься))))

Спасибо большое за помощь, в общем начал я делать, и у меня все никак не получалось отцентровать всплывающий блок по середине , так чтобы у меня был виден контент страницы, гуглил как это можно сделать и ВДРУГ случайно на брел вот на эту статью, http://habrahabr.ru/post/136351/

Почитал, посмотрел пример http://jsfiddle.net/vend3tta/9zwD4/


Афигеть это как раз то, что мне и нужно. Сейчас попробую разобраться, что там к чему.

Посмотри может тоже пригодиться :) И еще раз большое спасибо!)

тема закрыта
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.