Подтвердить что ты не робот

JQuery анимация скрыть и показать

Я хотел бы, чтобы две вещи происходили одновременно, когда я нажимаю на ссылку. Я медленно изучаю документацию Jquery, но мне еще предстоит узнать, что мне нужно.

Вот ссылка на мой сайт

Когда я нажимаю на ссылку сервисов, я хотел бы, #slideshow div #slideshow скрывался, и новый div заменял его.

Я пытался просто анимировать слайд-шоу при нажатии на ссылку служб, но он либо выполнял функцию анимации, либо переходил на связанную HTML-страницу, а не обе. Как бы я достиг обоих.

Не имеет значения, просто я прячу и показываю div на той же странице, или если я перехожу на новую html-страницу. Я просто хочу иметь функцию анимации и изменять содержимое, скрывая его.

это код JQuery я использую

$(document).ready(function(){   
  $("a.home").toggle(
    function(){
      $("#slideshow").animate({ height: 'hide', opacity: 'hide' }, 'slow');   
    },
    function(){
      $("#slideshow").animate({ height: 'show', opacity: 'show' }, 'slow');   
    }
  );
});

$(document).ready(function(){   
  $("a.services").toggle(
    function(){
      $("#slideshow2").animate({ height: 'show', opacity: 'show' }, 'slow');
    },
    function(){
      $("#slideshow2").animate({ height: 'hide', opacity: 'hide' }, 'slow');
    }
  );
});

домой и услуги две ссылки, и я хотел услуги при нажатии, чтобы скрыть #slideshow div, и показать slideshow2 div, который будет скрыт, а затем заменить первый.

Есть достаточное количество HTML, поэтому может быть легче просмотреть мой источник по ссылке.

4b9b3361

Ответ 1

Обновлено: это решение было обновлено в соответствии с последующим вопросом в комментариях.

Вы должны использовать метод обратного вызова методов show/hide.

$("a").click(function(){

  /* Hide First Div */
  $("#div1").hide("slow", function(){
    /* Replace First Div */
    $(this).replaceWith("<div>New Div!</div>");
  });

  /* Hide Second Div */
  $("#div2").hide("slow", function(){
    /* Replace Second Div */
    $(this).replaceWith("<div>New Div!</div>");
  });

  /* If you wanted to sequence these events, and only
     hide/replace the second once the first has finished,
     you would take the second hide/replace code-block 
     and run it within the callback method of the first
     hide/replace codeblock. */

});

Метод обратного вызова является вторым параметром функций .show/.hide. Он запускается всякий раз, когда заканчивается метод .show/.hide. Поэтому вы можете закрыть/открыть окно, а в методе обратного вызова запустить событие сразу же.