S3.Blog

29 Апреля 2024
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

JavaScript: Скрытые блоки

Дата последнего изменения: 8 Сентября 2009
Метки статьи: Готовые решения, HTML, JavaScript, © Авторское
На многих сайта, особенно на форумах, вы, наверное, не раз видели скрытые блоки, которые раскрываются при клике на них.
Практически все они построены по одному принципу: внутри общего DIV находятся два других - один, это панель для нажатия, во-втором скрытый текст.


Похожие материалы:




Леха Г. (гость) • ответить
а есть вариант, когда div всегда открывается в заданном месте страницы и при этом, когда нажимаем второй блок, первый, уже открытый до этого, скрывается?
Александрответить
готового примера нет, но в этом нет ничего сложного.
впишите в начале скрипта, перед function openBlock(el), переменную, хранящую div-элемент, например:
div_view = undefined;

и в условии, где открывается/закрывается блок, напишите так:
if (child && child.className == "this_block_is_hidden" ) {
if (child.style.display != 'block') {
if (div_view) {
div_view.style.display = 'none';
}
div_view = child;

child.style.display = 'block';
} else {
child.style.display = 'none';
}
}
Андрей (гость) • ответить
Подскажите, пожалуйста, можно ли сделать так, что бы при наведении курсора на определенный блок, плавно открывался скрытый блок?
Александрответить
можно, для этого вместо onclick поставьте onMouseOver, ну и пошаманьте с openBlock()
самое простое, это назначить изначально скрытому диву высоту в 1px, а потом в цикле, при наведении мыши, эту высоту увеличить до нормального размера, а при onMouseOut наоборот - в цикле уменьшить высоту с нормальной до 1 пиксела
Suicide (гость) • ответить
Спасибо! Пользуюсь
Юрий (гость) • ответить
можно, для этого вместо onclick поставьте onMouseOver, ну и пошаманьте с openBlock()
самое простое, это назначить изначально скрытому диву высоту в 1px, а потом в цикле, при наведении мыши, эту высоту увеличить до нормального размера, а при onMouseOut наоборот - в цикле уменьшить высоту с нормальной до 1 пиксела


Здравствуйте!
Вот мне как раз именно это и требуется, я заменил onclick на onmouseover, но:
[HTML]<div onmouseover="openBlock(this);" class="toggle">Нажмите, что бы раскрыть блок.</div>[/HTML]
[COLOR="DarkRed"]Здесь еще несколько DIV-ов![/COLOR]
[HTML]<div class="this_block_is_hidden">это первый скрытый блок</div>[/HTML]

Я так понимаю, что в выше приведенном примере, открывается второй див, дочерний как бы?
Поэтому у меня условие не работает?
Александрответить
покажите реальную структуру вашего html и попробуем разобраться вместе что, где и почему у вас не работает
Юрий (гость) • ответить
Спасибо, что ответили.

Решил остановится на onclick, взял Ваш код, прикрутил, вроде все норм.
Собственно мой сайт: Инфо-Рунет
При нажатии на кнопку, блок "добавить в закладки", справа под каждым сайтом.
Появляется скрытый блок, собственно закладки.

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

В любом случае, меня устраивает и этот вариант.
Большое спасибо!
Александрответить
т.е. моя помощь не нужна?
посмотрите исходники моего блога и http://s3blog.org/js/s3blog.js - использование моего метода view_block. там конечно не так как в статье описано, но конкретно для вашего случая это будет более красивый вариант. могу даже помочь бесплатно внедрить
Юрий (гость) • ответить
Спасибо!
Тоесть этот скрипт отвечает за "наведение по блокам", когда он меняет цвет и появляется надпись подробнее, так же заметил что мигает заголовок записи, правильно? Смотрится неплохо.

Возможно это можно применить к моему каталогу, Вы его смотрели, может по этому поводу у Вас есть советы или предложения?

Я, вообще уже использую изменение стиля при наведении, вот так:
<div onmouseover="this.className='blocksiteh'" onmouseout="this.className='blocksite'" >
Но пока еще не опредилился с самим стилем.

 
 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.