Перейти к содержимому



Плавное открытие/скрытие блоков

#1 gaaarfild

gaaarfild
  • Неактивные
  • 596 сообщений
  • Репутация: 0
0

Отправлено 05 Декабрь 2009 - 17:01

Как сделать плавное раскрытие и открытие блоков, например как вконтакте. Нажал на заголовок, плавно открылось. и наоборот.
И очень хотелось бы, чтобы подробно объяснили, как осуществляется движение.

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. JS (раскрыть/скрыть) Как сделать чтобы список раскрывался со сменой ссылки
  2. Скрытие блока при клике вне его области JavaScript
  3. Скрипт работает только на одном блоке
  4. JavaScript скрыть показать блок, при открытии одного, другие скрываются, как?
  5. Помощь по блоку

#2 FaTeRy

FaTeRy
  • Неактивные
  • 480 сообщений
  • Репутация: 1

Отправлено 05 Декабрь 2009 - 18:10

jQuery, наверное.. Читайте в инете про него, сам не особо знаком.
Помогите кто знает тут - javascript фотогалерея
  • 0

#3 EugeneM

EugeneM
  • Неактивные
  • 20 сообщений
  • Репутация: 0

Отправлено 05 Декабрь 2009 - 21:27

Можно, например, так. Нужна jQuery - найти где скачать ее в Интернете не проблема.
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.spoilerCaption').click(function(){
$(this).parent().children('div.spoilerContent').toggle('normal');
$(this).blur();
return false;
});
});
</script>
<style type="text/css">
.spoilerContent {
display:none;
padding: 10px;
border: 1px solid #ddd;
}
</style>
</head>
<body>
<div>
<a href="#" class="spoilerCaption">Показать скрытый текст</a>
<div class="spoilerContent">
<p>Может и не совсем как ВКонтакте...</p>
<p>Все равно я не видел как там сделано, не люблю я все эти социальные сети.</p>
<p>Но, вроде бы тоже вполне даже ничего!</p>
</div>
</body>
</html>

Если решение устроит, то стили оформления подправить, наверно, не составит труда. :blink:
  • 0

#4 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 06 Декабрь 2009 - 00:43

EugeneM, я думаю gaaarfild просит объяснить именно как реализуется сие чудо на JS, каковы алгоритмы и попиксильная резка.

Реализация относительно проста:
1) Нужен таймер, который задаёт скорость изменения: setInterval() или setTimeout();
2) Нужно задавать шаг, который будет изменять параметр высоты.
3) Нужно определиться как мы будем вызывать нашу функцию: вешать на обработчик действия или реализуя назначение действия при формировании страницы.

Вообще можно заглянуть в код jQuery. Там подобное реализовано. Но нужно учесть что там всё взаимосвязанно, там так много объектов что можно запутаться, поэтому начинать нужно с самого объекта jQuery.
  • 0

#5 gaaarfild

gaaarfild
    Topic Starter
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 06 Декабрь 2009 - 01:36

А неужели просто в Javascript это не сделать? Обязательно нужен Jquery? Мне кажется и без него можно.
  • 0

#6 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 06 Декабрь 2009 - 03:05

gaaarfild,

Я написал 3 пункта которые надо выполнить. То есть надо будет написать функцию и вызывать её для нужных объектов через обработчики. Или же назначать event'ы прям в JS.
Писать код, на подобии
...
el.style.width = i + "px";
...
не вижу смылса. Натолкнуть я тебя натолкнул на идею, а вот как выглядит это в виде кода, попробуй сам...
  • 0

#7 gaaarfild

gaaarfild
    Topic Starter
  • Неактивные
  • 596 сообщений
  • Репутация: 0

Отправлено 06 Декабрь 2009 - 03:42

=))Не догнал сразу. =) Я сегодня какой-то медлительный. =) Спасибо. =)
  • 0


Оформление форума – IPBSkins.ru