Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Функция hover (jQuery) (https://javascript.ru/forum/jquery/47453-funkciya-hover-jquery.html)

Davert Tanz 24.05.2014 21:15

Функция hover (jQuery)
 
Вот написал небольшой код - при наведении на блок правая часть удлиняется, а левому присваивается класс с тенью (небольшое подсвечивание).
В Firefox работает корректно. А в Chrome и Опере - при отведении мышки, блок не возвращается в исходное положение, а при дальнейшем наведении - продолжает возрастать в ширину из-за добавления падинга. И только спустя время начинает дорабатывать анимацию, которая не проигрывалась сразу, но его длина остается уже такой, какой стала.

function hoverServices() {
	$('.selected').hover( function() {
		$('#works > div:hover').animate( {
			'margin-left' : '-=25px'
		}, 300);
		$('#works > div:hover .caption').addClass('hoverServices');
		$('#works > div:hover .description').animate( {
			'padding-left' : '+=25px'
		}, 300);
	}, function() {
		$('#works > div:hover').animate( {
			'margin-left' : '+=25px'
		}, 300);
		$('#works > div:hover .caption').removeClass('hoverServices');
		$('#works > div:hover .description').animate( {
			'padding-left' : '-=25px'
		}, 300);
	});
};

krasovsky 26.05.2014 07:38

:hover убери

Davert Tanz 26.05.2014 12:19

Убрал - заработало как надо. Но у меня несколько блоков с таким классом. И код срабатывает на каждый. Как сделать, чтобы код срабатывал на тот, который был наведен?

Davert Tanz 26.05.2014 14:51

krasovsky, спасибо!
Дальше все сам сделал. Разобрался.

krasovsky 26.05.2014 14:53

какая у тебя разметка? что то типо этого?
<div class="selected" id="works">
<div>12312312</div>
</div>

тогда вместо $('#works > div') пиши $(this).children('div') или $('div',$(this))

Цитата:

krasovsky, спасибо!
Дальше все сам сделал. Разобрался.
ок)


Часовой пояс GMT +3, время: 08:01.