Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2016, 13:02   #1
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию Смена цветов в от А до Я и наоборот

Всем привет) помогите, пожалуйста доработать код по смене цвета текста.
в моем коде они меняются только от начала до конца, а нужно чтобы по принципу маятника

Код:
<html>

<head>
	<title>Colors</title>
</head>

<body>
	<h1 id="text">ТЕСТОВЫЙ  ТЕКСТ<h1>
	
	<script>
	
	var arr = ["red", "orange", "yellow", "lime", "blue" , "violet"]
	document.getElementById('text').style.color=arr[0];	
				
	function changeColor (){
	
	var i=1;						
				var timeinterval = setInterval(function(){
						if(i<i+1){
						document.getElementById('text').style.color=arr[i];	
						i=i+1;
						}
						if(i==arr.length){
						document.getElementById('text').style.color=arr[i];	
						i=i-6;
						};
				
				},1000);
							
	};
	
	window.onload = function () {
    changeColor();
}

	</script>

</body>

</html>
Знание надмевает, а любовь назидает

Последний раз редактировалось Оксана33; 02.09.2016 в 13:05.
Оксана33 вне форума Ответить с цитированием
Старый 02.09.2016, 13:37   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

такой вариант устроит?
Код:
	<script>
	
	var arr = ["red", "orange", "yellow", "lime", "blue" , "violet"]
	var i=1, direction=1;

	document.getElementById('text').style.color=arr[0];	
				
	function changeColor (){
	
				var timeinterval = setInterval(function(){
					document.getElementById('text').style.color=arr[i];	
					i=i+direction;
					if(i<0 || i==arr.length) {
					  i=direction<0?1:arr.length-2;
					  direction=-direction;
					}
				},1000);
							
	};
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2016, 14:15   #3
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

спасибо) подходит
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 02.09.2016, 14:25   #4
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
i=direction<0?1:arr.length-2;
не трудно вам будет расшифровать это
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 02.09.2016, 14:40   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

это просто тернарный оператор "?"
почитать можно, например, тут

условие ? значение1 : значение2

если условие выполняется - возвращается значение 1,
иначе - значение2

т.е. эта строчка может быть записана через обычный IF так:
Код:
if(direction<0)
  i=1;
else
  i=arr.length-2;
в одну строчку (через ?) это короче, проще, удобнее.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2016, 16:15   #6
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

еще раз спасибо)
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Старый 03.09.2016, 00:49   #7
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Serge_Bliznykov, было бы еще неплохо добавить, что тернарный оператор имеет наименьший приоритет, и его следует заключать в скобки
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 03.09.2016, 09:19   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Serge_Bliznykov, было бы еще неплохо добавить, что тернарный оператор имеет наименьший приоритет, и его следует заключать в скобки
Ну, так Вы и добавили!

p.s. это замечание справедливо только если тернарный оператор используется в составе выражения, и тогда будет идти речь о приоритете выполнения операций. В данном примере, например, в скобках необходимости нет. Так?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.09.2016, 18:21   #9
Оксана33
Форумчанин
 
Аватар для Оксана33
 
Регистрация: 24.11.2014
Сообщений: 156
По умолчанию

о каких скобках идет речь? объясните, поскольку я тернарный оператор видела только в этом исполнении System.print(.......
Знание надмевает, а любовь назидает
Оксана33 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит lesha18 Паскаль, Turbo Pascal, PascalABC.NET 1 26.02.2013 16:54
For Each наоборот Вождь Microsoft Office Word 26 13.04.2011 22:09
изменение цветов Lemon2009 Общие вопросы по Java, Java SE, Kotlin 1 01.09.2010 12:40
ВПР наоборот Python Microsoft Office Excel 6 11.04.2009 00:08
Слово наоборот Ketu Паскаль, Turbo Pascal, PascalABC.NET 12 16.03.2008 00:23