Если я правильно понимаю , вы хотите, чтобы ящик был красным до тех пор, пока кто-то не зависает, а затем станет серым на паре, а затем станет черным, а не красным.
Я предпочитаю, чтобы CSS выполнял как можно большую часть работы, поскольку он часто обрабатывается быстрее и легче для работы, особенно для чего-то такого простого. В большинстве случаев анимация CSS может заменить функцию анимации jQuery. jQuery требуется только для установки флага, в котором был установлен флажок, а затем после этого не требуется.
JQuery:
Я использую обновленный «на» функции для наведения курсора, так что вы можете легко отключить его, когда он не нужен. Это в основном устанавливает класс на коробке при первом запуске.
$(document).ready(function() {
$('.spring').on('mouseover', function() {
$('.spring')
.addClass('touched')
.off('mouseover');
});
});
CSS:
Я считаю, что анимация являются более гладкая и позволяют более точно контролировать с помощью CSS переходов, а не JQuery одушевленного. Мы устанавливаем состояние зависания в серый цвет, а класс .hovered - черный, и все в CSS.
.spring {
background: red;
width: 100px;
height: 30px;
transition: background 0.5s ease
}
.spring:hover, .spring.touched:hover {
background: #ccc;
}
.spring.touched {
background: #000;
}
Это дает легкий контроль над каждым аспектом внешнего вида, без необходимости добавлять громоздкий код CSS в JQuery.
See the Fiddle here
только один глюк-прежде чем использовать его, проверьте таблицу для CSS поддержки анимации: http://caniuse.com/css-animation. Обычно я рассматриваю переходы как «приятные, чтобы иметь», а не существенные, поэтому я не слишком волнуюсь, что IE9 и ниже не будут видеть переходы. Они по-прежнему прекрасно меняют цветные изменения, так что функциональных возможностей действительно нет. Преимущество в том, что у вас нет всего этого мусора в javascript.
На боковой ноте скрипт не содержит jQuery ... – koosa
У вашего jsfiddle есть ошибки, вот обновленный (не делая того, что вы хотите) http://jsfiddle.net/3f4RQ/2/ –
I обновил скрипку, чтобы делать то, что вы хотите, см. мой ответ. –