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


Партнерская программа Kredov

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

#1 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0
0

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

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

 

 

  • 0

#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