jQuery на mouseEnter исчезает в цвете фона

0

Я пытаюсь получить цвет фона <h2> и цвет его брака <p> чтобы он исчезал с другим цветом при наведении и исчезал до исходного цвета, когда вы больше не вибрируете над ним.

Кажется, я не понимаю.

Здесь у меня есть:

jQuery('div.flex-caption h2').hover(function() {
    jQuery( this ).css({background:'#2F2F2F'}).fadeIn( 500 );
    jQuery( this ).sibling('p').css({background:'#2F2F2F'}).fadeIn( 500 );
},
function() {
    jQuery( this ).css({background:'rgba(0, 0, 0, 0.5)'}).fadeIn( 500 );
    jQuery( this ).sibling('p').css({background:'rgba(0, 0, 0, 0.5)'}).fadeIn( 500 );
});

jQuery('div.flex-caption p').hover(function() {
    jQuery( this ).css({background:'#2F2F2F'}).fadeIn( 500 );
    jQuery( this ).sibling('h2').css({background:'#2F2F2F'}).fadeIn( 500 );
},
function() {
    jQuery( this ).css({background:'rgba(0, 0, 0, 0.5)'}).fadeIn( 500 );
    jQuery( this ).sibling('h2').css({background:'rgba(0, 0, 0, 0.5)'}).fadeIn( 500 );
});

Разметка HTML:

<div class="flex-caption">
<h2 class="captionTitle">TITLE</h2>
<div class="captionText">CONTENT</div>
</div>
  • 0
    Что происходит, когда вы пытаетесь это сделать?
  • 1
    В вашей разметке нет элемента <p>
Показать ещё 3 комментария

2 ответа

1

Я бы просто использовал для этого чистый CSS.

Вы можете использовать transition в CSS3, чтобы выполнить то, что вы пытаетесь сделать.

h2 {
    background-color: red;
    transition: background-color .25s ease-in-out
    -moz-transition: background-color .25s ease-in-out
    -webkit-transition: background-color .25s ease-in-out
}

h2:hover {
    background-color: blue;
}

Псевдокласс класса hover будет соответствовать, когда вы нависаете над элементом h2.

Вот сценарий и пример.

http://jsfiddle.net/sC4He/

ПРИМЕЧАНИЕ. При использовании CSS3 он не будет работать в старых браузерах.

0

Первая проблема заключается в том, что у вас нет тэга p в вашем элементе HTML, а вторая проблема заключается в том, что вы не можете одновременно использовать 2 функции для запуска события

поэтому здесь вы можете увидеть правильное решение,

HTML:

<div class="flex-caption">
<h2 class="captionTitle">TITLE</h2>
<p class="captionText">CONTENT</p>
</div>

JS:

jQuery('div.flex-caption h2').mouseover(function() {
    jQuery( this ).css({background:'#2F2F2F'}).fadeIn( 500 );
    jQuery( this ).sibling('h2').css({background:'#2F2F2F'}).fadeIn( 500 );
});
jQuery('div.flex-caption p').mouseover(function() {
    jQuery( this ).css({background:'#2F2F2F'}).fadeIn( 500 );
    jQuery( this ).sibling('p').css({background:'#2F2F2F'}).fadeIn( 500 );
});
jQuery('div.flex-caption h2').mouseout(function() {
    jQuery( this ).css({background:'#FFFFFF'}).fadeIn( 500 );
    jQuery( this ).sibling('h2').css({background:'#FFFFFF'}).fadeIn( 500 );
});

jQuery('div.flex-caption p').mouseout(function() {
    jQuery( this ).css({background:'#FFFFFF'}).fadeIn( 500 );
    jQuery( this ).sibling('p').css({background:'#FFFFFF'}).fadeIn( 500 );
});                                        

см. также http://jsfiddle.net/sC4He/5/

надеюсь, что это поможет

Ещё вопросы

Сообщество Overcoder
Наверх
Меню