Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Бесконечная смена цвета текста (https://javascript.ru/forum/dom-window/22160-beskonechnaya-smena-cveta-teksta.html)

iGusse 08.10.2011 14:39

Бесконечная смена цвета текста
 
Здравствуйте.
Есть массив с цветами:
var colorsArray = (['#1fa8d0', '#6ad01f', '#d01f3c'] );


Есть заголовок h2. Нужно сделать так, чтобы при наведении курсора на заголовок его цвет менялся по кругу, на цвета из массива по очереди. Плавно перетекал. Сделал это вот так:

$('.wrap h2').mouseover(
	function () 
		{
			colorAni($(this), 1000)
		}
	);
	

	function colorAni(el, interval) 
	{
		var colorsArray = (['#1fa8d0', '#6ad01f', '#d01f3c'] );
		i = 0;
		while (i < colorsArray.length) {
			col = colorsArray[i]
			el.animate(
				{
					color: col
				}, interval )		
			i++	
		}
		setInterval(colorAni(el, interval), interval * colorsArray.length)
	}


Но возникла проблема. Как при отведении курсора остановить смену цвета? Как я понял остановить функцию в onmouseover не получится...

Sweet 08.10.2011 15:03

iGusse, ты правда веришь, что вокруг квадратных скобок объявления массива нужны круглые? По теме: по mouseout clearInterval сделай.

iGusse 08.10.2011 19:03

Цитата:

Сообщение от Sweet (Сообщение 130307)
iGusse, ты правда веришь, что вокруг квадратных скобок объявления массива нужны круглые? По теме: по mouseout clearInterval сделай.

В книге так =))) http://www.ozon.ru/context/detail/id/4563273/


Пробовал делать clearInterval, все равно не останавливается
залил сюда http://gusse.ru/js/templates/

Seva1986 08.10.2011 20:53

iGusse,

Я недавно скрипт изучаю пока мало что знаю, что там иметеься ввиду под таким синтаксисом? круглые это функция, или метод, квадратные это объектный литерал масива... для чего их объеденять?

iGusse 08.10.2011 22:03

Цитата:

Сообщение от Seva1986 (Сообщение 130358)
iGusse,

Я недавно скрипт изучаю пока мало что знаю, что там иметеься ввиду под таким синтаксисом? круглые это функция, или метод, квадратные это объектный литерал масива... для чего их объеденять?

извиняюсь я ошибся, в книге было только в квадратных скобках

Разобрался с clearInterval сделал так
colorsArray = ['#1fa8d0', '#6ad01f', '#d01f3c', '#000']
	function ani () {
		i = 0;
		while (i < colorsArray.length) {
			col = colorsArray[i]
			$('.wrap h2').animate(
				{
					color: col
				}, 1000
				)	
			 i++
		}
	}
	
	$('.wrap h2').mouseover(
		function () {
			ani()
			play = setInterval(ani,3000)
		}
	);
	
	$('.wrap h2').mouseout(
	function () 
		{
			clearInterval(play)
		}
	);


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