2016-09-07 3 views
1

Все работает очень хорошо в этой анимации до последнего бит. Я сделал CodePen, а также вставил код jQuery ниже.Проблемы с анимацией кнопки w/jQuery: не скрывает

Когда я нажимаю на вторую кнопку, область текста выходит анимированной. Когда я нажимаю на текстовую область, чтобы закрыть ее, она окончательно «появляется» до полного исчезновения. Я попытался добавить свойство непрозрачности в закрывающей анимации (файл CSS), но, похоже, этого недостаточно. Есть идеи?

$(document).ready(); 

$('#button2d').click(function() { 
    $('.price_description').removeClass("swiftin"); 
    $('.price_description').addClass("open"); 
    $('.price_description').show(); 
    $('#button3d').fadeOut(080); 
}); 

$('.price_description').click(function() { 
    $('.price_description').removeClass("open"); 
    $('.price_description').addClass("swiftin"); 
    $('#button3d').fadeIn('slow', function() { 
     $('.price_description').css('display', 'none'); 
    }); 
}); 
+0

использование .hide() ;. http://api.jquery.com/hide/ –

ответ

1

Добавить к классу .swiftin animation-fill-mode: forwards; для того, чтобы остановить анимацию на последнем кадре:

.swiftin { 
    animation: swiftin 0.5s; 
    animation-fill-mode: forwards; 
} 
+0

Спасибо! Ты волшебник! –

+0

Вопрос: поэтому без режима анимации-заполнения текстовая область вернется в прежнее/начальное состояние? –

+0

Да. Значение по умолчанию параметра «анимация-заливка-режим» равно «none;», это означает, что анимация не будет применять какие-либо стили к цели до или после ее выполнения. Вы можете узнать больше об этой собственности на [MDN] (https://developer.mozilla.org/en-US/docs/Web/CSS/animation-fill-mode) – kalym4ik

0

добавить скрыть(); после удаленияClass ("open")

$(document).ready(); 

$('#button2d').click(function() { 
    $('.price_description').removeClass("swiftin"); 
    $('.price_description').addClass("open"); 
    $('.price_description').show(); 
    $('#button3d').fadeOut(080); 
}); 

$('.price_description').click(function() { 
    $('.price_description').removeClass("open").hide(); 
$('.price_description').addClass("swiftin"); 
$('#button3d').fadeIn('slow', function() { 
    $('.price_description').css('display', 'none'); 
    }); 
}); 

P.S. $(document).ready(); неправ, проверьте документацию

+0

Спасибо. Я также проверю документацию. –

+0

Это потому, что мне не нужно ничего загружать после открытия документа? –

+0

неправильный синтаксис, он должен быть следующим: $ (document) .ready (function() { ... поставить функции здесь ... }); – user6622043

Смежные вопросы