советы по CSS, HTML, Java Script, PHP

блог о веб технологиях

показать или скрыть блок плавно

Май31

показать или скрыть блок

С праздником Вас дорогие блондины и блондинки (натуральные) – ведь сегодня именно Ваш праздник. Кстати как заверяют ученые – людей со светлыми волосами с каждым годом все меньше, так как ген светлых волос – рецессивный – то есть уступает гену темных волос. Так что цените и любите друг-друга. Ну а теперь по теме – сегодня обратимся к jquery эффектам, которые используются чтобы показать или скрыть блок.

Немного теории

Объекты можно легко и просто скрывать меняя всего один css параметр – display, который отвечает за то, как будет отображаться тот или иной элемент. Но про плавность перехода здесь говорить не приходится, поэтому представляю Вам следующую альтернативу:

hide() – просто скрывает элемент, причем молниеносно.
hide(speed,[fn]) – скроет элемент за время speed и после этого вызовет функцию [fn] один раз.
show() – отобразит элемент, причем молниеносно.
show(speed,[fn]) – отобразит элемент за время speed и после этого вызовет функцию [fn] один раз.
toggle() – скроет или отобразит элемент (в зависимости от текущего состояния), причем молниеносно.
toggle(switch) – скроет или отобразит элемент (в зависимости от значения булевой переменной switch), причем молниеносно. Если
switch = true – отобразит элемент
switch = false – скроет элемент
toggle(speed,[fn]) – скроет или отобразит элемент (в зависимости от текущего состояния), за время speed и после этого вызовет функцию [fn] один раз.

speed – может принимать либо строковый параметр: slow, normal, fast, либо значение в миллисекундах
[fn] – не обязательный параметр

Практический пример

Создаем див, и 8 кнопок к нему:

<input type="button" value="hide" onclick="$('div.container').hide();">
<input type="button" value="hide Speed" onclick="$('div.container').hide('slow');">
<input type="button" value="show" onclick="$('div.container').show();">
<input type="button" value="show Speed" onclick="$('div.container').show('slow');">
<input type="button" value="toggle" onclick="$('div.container').toggle();">
<input type="button" value="toggle=true" onclick="$('div.container').toggle(1>0);">
<input type="button" value="toggle=false" onclick="$('div.container').toggle(1>10);">
<input type="button" value="toggle speed" onclick="$('div.container').toggle('slow');">
<div class="container">
<img src="pokazat-ili-skrit-block.jpg">
</div>

Теперь тестируем  наш jquery пример показать / скрыть элемент.

jquery

Как видите здесь эффект скрытия и отображения элемента достигается не просто путем изменения css параметра display, также изменяются значения ширины, высоты и прозрачности элемента, и что самое приятное все это происходит плавно. Если что-то пошло не так, то качаем пример к уроку показать или скрыть блок плавно.

размещено в CSS, Java Script
4 Комментариев для

“показать или скрыть блок плавно”

  1. On Июнь 28th, 2010 at 13:21 perlovka_nat написал:

    Скрипт хороший, а если у меня 2 картинки?Допустим одна уже открыта, а вторая-скрыта.Нажимаем на кнопку вторая заменяется первой, щелкаем по другой кнопке первая заменяется второй

  2. On Июнь 28th, 2010 at 15:26 admin написал:

    так а что нужно сделать?

  3. On Июнь 29th, 2010 at 07:53 perlovka_nat написал:

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

  4. On Июнь 29th, 2010 at 07:59 perlovka_nat написал:

    Я думаю просто условие написать,что если див с таким-то классом открыт, то другие дивы закрыты. Но как грамотно написать незнаю

Вы должны авторизироваться чтобы оставить комментарий.