2015-07-07 3 views
0

Я хочу сделать текстовое поле «flash» с помощью JQuery. Сначала я хотел использовать .animate, но я узнал, что анимация не работает на цветах, если не используется плагин JQuery.Color.JQuery.Color обходное решение

Дело в том, что у меня есть причины, по которым я не хочу использовать какие-либо дополнительные плагины, поэтому мой вопрос в том, есть ли какое-то умное обходное решение (это не смешно сложно).

Вот JSFiddle, который демонстрирует как то, что я хочу, и моя лучшая попытка до сих пор ...

+0

Почему бы не создать CSS анимацию, которая делает то, что вы хотите, и прикрепить это к toggleClass? –

+0

@Paulie_D Конечно, я об этом не думал. Я посмотрю на это –

ответ

2

Как уже упоминалось в комментариях, почему бы не создать CSS анимацию, которая делает то, что вы хотите, и прикрепить это к toggleClass?

$(function() { 
 

 

 
    var Box2 = $('.box2'); 
 

 

 
    Box2.click(function() { 
 
    $('#tb2').toggleClass("flash"); 
 

 
    }); 
 

 
});
.box2 { 
 
    width: 170px; 
 
    border-style: solid; 
 
    border-color: black; 
 
    margin: 30px 20px; 
 
    cursor: pointer; 
 
} 
 
@keyframes flash { 
 
    0% { 
 
    background-color: white; 
 
    } 
 
    100% { 
 
    background-color: red; 
 
    } 
 
} 
 
.flash { 
 
    animation-name: flash; 
 
    animation-duration: .1s; 
 
    animation-iteration-count: 5; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
<div class="box2">Click Me</div> 
 
<input type="text" id="tb2"></input>

+0

Ваше решение на самом деле более красивое, чем мое, поэтому я приму ваше, когда это станет возможным. Спасибо за помощь! =) –

+1

Обратите внимание, что после щелчка один элемент нужно дважды щелкнуть, прежде чем запускать снова ... потому что я действительно не удалил новый класс. Это можно легко решить, добавив в функцию 'if/else, чтобы проверить, был ли класс уже переключен и удалить его. В качестве альтернативы добавьте параметр 'setTimeout' после первоначального переключения (равного длине анимации), чтобы снова удалить класс. –

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