Переход не применяется

#javascript #jquery #html #css

#javascript #jquery #HTML #css

Вопрос:

Итак, я использую jQuery для изменения значков и использую CSS для применения перехода. По какой-то причине это не работает, вот мой код

CSS

 .fa-heart{
  transition: 1s;
}
.fa-heart-o{
  transition: 1s;
}
  

JS

 $('.fa-heart-o').hover(function() {
     $(this).toggleClass('fa-heart-o fa-heart');   
}, function() {
     $(this).toggleClass('fa-heart-o fa-heart'); 
});
  

Демонстрация http://jsfiddle.net/cLVBg/1 / Есть идеи?

Комментарии:

1. вы забыли включить jquery в свой fiddle, я обновил: jsfiddle.net/cLVBg/1

2. Какого рода переход вы ожидаете?

3. Переход за 1 секунду. Вот так jsbin.com/jiqufano/1/edit Вместо цвета фона это был бы элемент @j08691

4. Но вы не меняете никаких свойств CSS. Просто класс. В jsbin цвет меняется между классами.

5. @user302975 но здесь нет свойства для анимации, вы просто меняете содержимое псевдоэлемента

Ответ №1:

content не является анимируемым свойством, следовательно transition , не применяется. Однако, если вы просто хотите заполнить сердце переходом по непрозрачности, попробуйте поработать с сердцем, созданным в SVG или CSS, или просто поместите одно сердце поверх другого и измените их значение непрозрачности.

Пример:http://jsfiddle.net/cLVBg/5 /

Комментарии:

1. @A.Wolff — Я могу даже сделать это с :hover , но мне лень редактировать, поэтому я просто скопировал код op: P

Ответ №2:

То, что вы делаете сейчас, — это замена содержимого при наведении курсора мыши. Если вы хотите медленный переход, вы можете использовать свойства CSS для достижения этого, например:

Пример JSFiddle

HTML:

 <div id="transition"></div>
  

CSS:

 #transition {
    width: 50px;
    height: 50px;
    background-color: blue;
}

#transition:hover {
    transition: background-color 1s ease;
    background-color: red;
}
  

transition Свойство требует, чтобы вы объявили другое свойство, к которому будет применяться переход. Вы можете выбрать продолжительность, функцию синхронизации перехода ( ease в данном случае) и задержку, если хотите.

Комментарии:

1. @user302975 Я показал вам, как использовать CSS для создания эффекта, который вы ищете. Вы должны быть в состоянии применить его самостоятельно к своему собственному коду без особых трудностей.

2. @user3537990 Это фон элемента , поэтому он все еще выполняет переход элемента.