анимация переключения jQuery - PullRequest
25 голосов
/ 31 мая 2009

У меня есть этот JQuery:

$(document).ready(function()
{
   $("#panel").hide();

   $('.login').toggle(
   function()
   {
      $('#panel').animate({
      height: "150", 
      padding:"20px 0",
      backgroundColor:'#000000',
      opacity:.8
}, 500);
   },
   function()
   {
      $('#panel').animate({
      height: "0", 
      padding:"0px 0",
      opacity:.2
      }, 500);
   });
});

Это работает нормально, но мне нужно немного расширить функциональность. Я также хочу аналогичным образом манипулировать свойствами другого div в синхронизации с #panel div. Я попытался добавить еще две функции, относящиеся к вторичному div, но я только что получил 4-фазное переключение ... ха-ха! Прости мое невежество!

Спасибо, ребята!

Ответы [ 3 ]

50 голосов
/ 31 мая 2009
$('.login').toggle(
    function(){
        $('#panel').animate({
            height: "150", 
            padding:"20px 0",
            backgroundColor:'#000000',
            opacity:.8
        }, 500);
        $('#otherdiv').animate({
            //otherdiv properties here
        }, 500);
    },
    function(){
        $('#panel').animate({
            height: "0", 
            padding:"0px 0",
            opacity:.2
        }, 500);     
        $('#otherdiv').animate({
            //otherdiv properties here
        }, 500);
});
6 голосов
/ 17 февраля 2012

Я не думаю, что добавление двойных функций внутри функции переключения работает для зарегистрированного события щелчка (если я что-то упустил)

Например:

$('.btnName').click(function() {
 top.$('#panel').toggle(function() {
   $(this).animate({ 
     // style change
   }, 500);
   },
   function() {
   $(this).animate({ 
     // style change back
   }, 500);
 });
0 голосов
/ 26 апреля 2012
onmouseover="$('.play-detail').stop().animate({'height': '84px'},'300');" 

onmouseout="$('.play-detail').stop().animate({'height': '44px'},'300');"

Просто поставьте две остановки - одну на одну и на другую.

...