Анимация с добавлением класса
Добрый день!
Делаю раскрывающийся список с добавлением 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> |
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> |
Я хочу чтобы класс был пока он хоть немного развернут. А в данном случае он появляется только после полного разворачивания.
Т.е. Как только начал разворачиваться - класс присвоился. Когда закончил сворачиваться только тогда удалился класс |
Т.е. разворачивался как у меня, а сворачивался как у тебя :)
|
примерно так:
можно переменную взять: 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; }); }); |
Огромное спасибо!
То что хотел :) |
Цитата:
смотрите код во 2 посте. |
Часовой пояс GMT +3, время: 22:05. |