Как создать анимацию в моем случае?

#jquery #html #css #animation

#jquery #HTML #css #Анимация

Вопрос:

Я пытаюсь создать переход для своих элементов. Все примеры, которые я видел, используют :hover состояние. Однако мне нужно запустить переход, когда я нажимаю на ссылку.

Вот мой html

HTML

 <a id='fireme' href=''>FIRE</a>
<div id='test'> Test title 1</div>
 

CSS

 #test{
   background-color: red;
   height: 100px;
   width: 150px;
   transition: all 2s ease-out;
}

.newWidth{
   width: 250px;
}
 

JS

 $('#fireme').click(function(){
    $('#test').addClass('newWidth')
})
 

Однако, когда я нажимаю на ссылку, вообще ничего не происходит, и ширина по-прежнему остается такой же 150px

Кто-нибудь может мне помочь в этом? Спасибо!

Ответ №1:

Это из-за каскадного порядка правил стиля CSS.

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

Если вы будете использовать class в первую очередь, то вы получите то, что вам нужно.

В вашем HTML добавьте атрибут class

 <a id='fireme' href=''>FIRE</a>
<div id='test' class='test'> Test title 1</div>
 

И в CSS правила изменения

 .test{
   background-color: red;
   height: 100px;
   width: 150px;
   transition: all 2s ease-out;
}

.newWidth{
   width: 250px;
}
 

Посмотрите на это в действии http://jsfiddle.net/36BkX /

В противном случае вам необходимо повысить приоритет вашего правила CSS

 #test{
   background-color: red;
   height: 100px;
   width: 150px;
   transition: all 2s ease-out;
}

.newWidth{
   width: 250px !important;
}
 

И оставьте rest таким, какой он есть сейчас

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

1. вы также можете изменить второе правило на #test.newWidth без использования именованного класса test .