Проблема в том, что ваш #formResponse
контейнер сначала не скрыт.Как только текст ответа будет вставлен в него, он будет отображаться напрямую, а не исчезать. Вам необходимо объявить display: none;
, чтобы скрыть его:
<div class="contact-form-text" id="formResponse" style="display: none;"></div>
Функция обратного вызова AJAX вставиттекст в него, а затем добавить его.
ОБНОВЛЕНИЕ: Если вы хотите ОБА слайд и затемнение, то вам нужно будетиспользуйте дополнительный контейнер ответов, потому что, как только он выдвигается, он IS уже виден и не может исчезнуть со 100% видимости.То, что вы хотите, будет выглядеть примерно так:
<div id="formResponse_container" style="display:none;"> <!-- extra wrapper -->
<div id="formResponse" class="contact-form-text" style="display:none;"></div>
</div>
, а затем в скрипте jQuery вместо
$("#formResponse").hide().html(data).show('slow'); //hide before slide!
вы получите
$("#formResponse_container").slideDown("slow", function() {
$("#formResponse").html(data).fadeIn("slow");
});
Чтоэто значит, что он сначала скользит вниз по внешнему контейнеру, а после завершения анимации он исчезает во внутреннем контейнере.
Живой пример
Надеюсь, этопомогает.