Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.06.2013, 09:46
Интересующийся
Отправить личное сообщение для Ahsar Посмотреть профиль Найти все сообщения от Ahsar
 
Регистрация: 01.04.2013
Сообщений: 14

Анимация с добавлением класса
Добрый день!
Делаю раскрывающийся список с добавлением css класса. Классы добавляются, все работает. Но как сделать, чтобы класс удалялся когда content полностью свернулся (закончилась анимация сворачивания), а не сразу после клика на header. Отдельные события на сворачивание и разворачивание делать?
Вот мой код
$(document).ready(function(){
	$(".content").hide();
	$(".header").click(function(){
		$(this).next().slideToggle();
		$(this).parent().toggleClass('shadow');
	});
});


<div class="new_department">
		<div class="header">2 новых отделения</div>
		<div class="content"><h3>ст. Шелковская</h3><p>Операционный офис</p><p>ул. Советская, 50</p></div>
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 26.06.2013, 10:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Ahsar,
документацию на slideToggle([duration],[callback]):прочтите callback — функция, заданная в качестве обработчика завершения анимации (появления или скрытия).
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
  <style type="text/css">
 .shadow {
    background: #fc0; /* Цвет фона */
    -moz-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Firefox */
    -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Для Safari и Chrome */
    box-shadow: 0 0 10px rgba(0,0,0,0.5); /* Параметры тени */
    padding: 10px;
   }
  </style>
</head>
<body>
  <div class="new_department">
		<div class="header">2 новых отделения</div>
		<div class="content"><h3>ст. Шелковская</h3><p>Операционный офис</p><p>ул. Советская, 50</p></div>
</div>

<script>
$(document).ready(function () {
    $(".content").hide();
    var n = 1;
    $(".header").click(function () {

        if (n) $(this).parent().toggleClass('shadow');
        $(this).next().slideToggle(500, function () {

            if (!n) $(this).parent().toggleClass('shadow');
            n ^= 1
        });

    });
});</script>

</body>
</html>

Последний раз редактировалось рони, 26.06.2013 в 11:20.
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2013, 10:57
Интересующийся
Отправить личное сообщение для Ahsar Посмотреть профиль Найти все сообщения от Ahsar
 
Регистрация: 01.04.2013
Сообщений: 14

Я хочу чтобы класс был пока он хоть немного развернут. А в данном случае он появляется только после полного разворачивания.
Т.е. Как только начал разворачиваться - класс присвоился. Когда закончил сворачиваться только тогда удалился класс
Ответить с цитированием
  #4 (permalink)  
Старый 26.06.2013, 11:02
Интересующийся
Отправить личное сообщение для Ahsar Посмотреть профиль Найти все сообщения от Ahsar
 
Регистрация: 01.04.2013
Сообщений: 14

Т.е. разворачивался как у меня, а сворачивался как у тебя
Ответить с цитированием
  #5 (permalink)  
Старый 26.06.2013, 11:07
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

примерно так:
можно переменную взять:
var tog = true;

  $(document).ready(function(){
    $(".content").hide();
    $(".header").click(function()
         {
        if (tog)
            {
            $(this).next().slideToggle(500, function ()
                 {
                 $(this).parent().toggleClass('shadow');
                 });
            }
        else
            {
             $(this).next().slideToggle();
             $(this).parent().toggleClass('shadow');
            }
        tog = !tog;
        });
});
Ответить с цитированием
  #6 (permalink)  
Старый 26.06.2013, 11:11
Интересующийся
Отправить личное сообщение для Ahsar Посмотреть профиль Найти все сообщения от Ahsar
 
Регистрация: 01.04.2013
Сообщений: 14

Огромное спасибо!
То что хотел
Ответить с цитированием
  #7 (permalink)  
Старый 26.06.2013, 11:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Ahsar
Т.е. разворачивался как у меня, а сворачивался как у тебя
Ahsar,
смотрите код во 2 посте.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CSS3 анимация (transition) Magneto Events/DOM/Window 4 19.12.2014 11:39
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Свойства/методы класса TicTac Общие вопросы Javascript 5 03.07.2011 14:53
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Цикличность анимация? SashaBorandi jQuery 1 25.12.2008 09:20